本来几个月前用过,现在忘了....现在记下来,怕自己忘了
1. xml 文件中 :
<android.support.design.widget.TabLayout //这里面还有很多属性,看名字就知道什么用的,有空随便试试
android:id="@+id/tl_fragment_main_home_tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
//tab文字的造型可以自定义一个style文件给tablayout设置上
如: app:tabTextAppearance="@style/xxx"
<View //这个是viewpager和tablayout之间的一个线,不用管,装饰用的
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@drawable/main_screen_divider" />
<android.support.v4.view.ViewPager
android:id="@+id/vp_fragment_main_home_viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
2. java代码中:
- 首先在viewpager的adpater中要实现一个getPageTitle()方法:
这个方法返回值就是在tablayout中各个tab显示的文字
public class HomeFragmentViewPagerAdapter extends FragmentStatePagerAdapter {
private List<Fragment> fragments;
private List<String> titles;
public HomeFragmentViewPagerAdapter(FragmentManager fm, List<Fragment> fragments, List<String> titles) {
super(fm);
this.fragments = fragments;
this.titles = titles;
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
}
- 将tablayout和viewpager关联:
tabLayout.setupWithViewPager(vp_fragment_main_home_viewpager);
tabLayout.setTabTextColors(XXX);
tabLayout.setSelectedTabIndicatorColor(YYY);
tabLayout.setTabMode(TabLayout.MODE_FIXED);//表示tablayout中的元素固定住不能滑动,
//tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE) 表示tablayout中的元素可以滑动
//其他属性自己试,我所需要的已经完成了
这样你的tab就会显示viewpager的title内容了,
不过如果你对你的tab有更高的要求,要在里面显示些奇怪的东西,也可以,那么在Adapter中设置title就无所谓了,反正你也会改掉
tabLayout.getTabAt(0).setText("11111111"); //当然还有更多属性可以更改,自己去试
tabLayout.getTabAt(1).setCustomView(R.layout.entry); //设置了自定义view,setText之类的方法就没用了
1
1
1
1
1
1
1
1
1
1
1
1