博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
浅谈TabLayout(ViewPager+Tab联动)
阅读量:6655 次
发布时间:2019-06-25

本文共 4664 字,大约阅读时间需要 15 分钟。

google发布了的Android Support Design库中提供了TabLayout

 

通过TabLayout+ViewPager实现导航栏效果,点击Tab ,ViewPager跟随变化,滑动ViewPager,Tab跟随变化

看效果图:

通过一个Demo来了解TabLayout的简单使用(Android Studio开发),代码中都有注释了 ,很简单

1、build.gradle文件中加入

compile 'com.android.support:design:22.2.0'

 

2、写Xml文件,注意TabLayout的三个属性

app:tabIndicatorColor="#0f0"                每个tab下方的下划线的颜色    app:tabSelectedTextColor="#00f"             被选中的tab的文本颜色app:tabTextColor="#f00"                     未被选中的tab的文本颜色
1 
7 8
17 18 19
26 27
activity_main.xml

 

3、创建4个fragment

这里只创建一个,其他三个类似

1 package com.xqx.com.tablayoutdemo; 2  3  4 import android.os.Bundle; 5 import android.support.v4.app.Fragment; 6 import android.view.LayoutInflater; 7 import android.view.View; 8 import android.view.ViewGroup; 9 10 11 /**12  * A simple {
@link Fragment} subclass.13 */14 public class OneFragment extends Fragment {15 16 17 public OneFragment() {18 // Required empty public constructor19 }20 21 22 @Override23 public View onCreateView(LayoutInflater inflater, ViewGroup container,24 Bundle savedInstanceState) {25 // Inflate the layout for this fragment26 return inflater.inflate(R.layout.fragment_one, container, false);27 }28 29 30 }
OneFragment
1 
7 8
9
14 15
fragment_one

 

4、创建ViewPager的适配器

1 package com.xqx.com.tablayoutdemo; 2  3 import android.support.v4.app.Fragment; 4 import android.support.v4.app.FragmentManager; 5 import android.support.v4.app.FragmentPagerAdapter; 6  7 import java.util.List; 8  9 10 public class MyAdapter extends FragmentPagerAdapter{11 12     private List
fragments; //fragment集合13 private List
titles; //tab标题集合14 15 public MyAdapter(FragmentManager fm, List
fragments, List
titles) {16 super(fm);17 this.fragments = fragments;18 this.titles = titles;19 }20 21 @Override22 public Fragment getItem(int position) {23 return fragments.get(position);24 }25 26 @Override27 public int getCount() {28 int ret = 0;29 if (fragments!=null && fragments.size()!=0){30 ret = fragments.size();31 }32 return ret;33 }34 35 @Override36 public CharSequence getPageTitle(int position) {37 return titles.get(position);38 }39 40 41 }
MyAdapter.java

 

5、MainActivity.java

1 package com.xqx.com.tablayoutdemo; 2  3 import android.support.design.widget.TabLayout; 4  5 import android.support.v4.app.Fragment; 6 import android.support.v4.app.FragmentActivity; 7 import android.support.v4.view.ViewPager; 8 import android.os.Bundle; 9 10 import java.util.ArrayList;11 import java.util.List;12 13 public class MainActivity extends FragmentActivity {14 15     private TabLayout tabLayout;16     private ViewPager viewPager;17 18     //四个fragment19     private OneFragment oneFragment;20     private TwoFragment twoFragment;21     private ThreeFragment threeFragment;22     private FourFragment fourFragment;23 24     //适配器25     private MyAdapter adapter;26 27     private List
fragments; //fragment集合28 private List
titles; //tab标题集合29 @Override30 protected void onCreate(Bundle savedInstanceState) {31 super.onCreate(savedInstanceState);32 setContentView(R.layout.activity_main);33 34 tabLayout = (TabLayout) findViewById(R.id.tablayout);35 viewPager = (ViewPager) findViewById(R.id.viewpager);36 37 //创建四个Fragment对象38 oneFragment = new OneFragment();39 twoFragment = new TwoFragment();40 threeFragment = new ThreeFragment();41 fourFragment = new FourFragment();42 43 //将四个Fragment对象添加到集合中44 fragments = new ArrayList<>();45 fragments.add(oneFragment);46 fragments.add(twoFragment);47 fragments.add(threeFragment);48 fragments.add(fourFragment);49 50 //给Tab添加标题51 titles = new ArrayList<>();52 titles.add("one");53 titles.add("two");54 titles.add("three");55 titles.add("four");56 57 //创建适配器58 adapter = new MyAdapter(getSupportFragmentManager(),fragments,titles);59 //viewpager绑定适配器60 viewPager.setAdapter(adapter);61 //tabLayout绑定viewpager62 tabLayout.setupWithViewPager(viewPager);63 64 }65 66 }
MainActivity.java

 

-------------------------------------------------------------------------------------------------

其他相关:

转载地址:http://zqxto.baihongyu.com/

你可能感兴趣的文章
美颜代码
查看>>
Linux常用命令(三)文件/目录的打包和压缩
查看>>
NGINX 的安装及平滑升级
查看>>
ES6 对象的解构赋值
查看>>
系统及进程监控
查看>>
MySQL常用函数
查看>>
Doxygen详细介绍
查看>>
让你Python程序软件目录更规范化
查看>>
测者的测试技术手册:揭开java method的一个秘密--巨型函数
查看>>
java基础--1
查看>>
http客户端请求及服务端详解
查看>>
我与Git@OSC的四年多时光
查看>>
MySQL的删除
查看>>
异常类的设计和使用技巧
查看>>
java编码
查看>>
DB2 9.7 备份还原
查看>>
Android Browser学习十四 NetworkStateHandler网络状态监听和处理
查看>>
Linux IO实时监控iostat命令详解
查看>>
DateFormat 线程不安全
查看>>
使用二进制位进行权限控制
查看>>