本來(lái)幾個(gè)月前用過(guò),現(xiàn)在忘了....現(xiàn)在記下來(lái),怕自己忘了
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文字的造型可以自定義一個(gè)style文件給tablayout設(shè)置上
如: app:tabTextAppearance="@style/xxx"
<View //這個(gè)是viewpager和tablayout之間的一個(gè)線,不用管,裝飾用的
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中要實(shí)現(xiàn)一個(gè)getPageTitle()方法:
這個(gè)方法返回值就是在tablayout中各個(gè)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關(guān)聯(lián):
tabLayout.setupWithViewPager(vp_fragment_main_home_viewpager);
tabLayout.setTabTextColors(XXX);
tabLayout.setSelectedTabIndicatorColor(YYY);
tabLayout.setTabMode(TabLayout.MODE_FIXED);//表示tablayout中的元素固定住不能滑動(dòng),
//tabLayout.setTabMode(TabLayout.MODE_SCROLLABLE) 表示tablayout中的元素可以滑動(dòng)
//其他屬性自己試,我所需要的已經(jīng)完成了
這樣你的tab就會(huì)顯示viewpager的title內(nèi)容了,
不過(guò)如果你對(duì)你的tab有更高的要求,要在里面顯示些奇怪的東西,也可以,那么在Adapter中設(shè)置title就無(wú)所謂了,反正你也會(huì)改掉
tabLayout.getTabAt(0).setText("11111111"); //當(dāng)然還有更多屬性可以更改,自己去試
tabLayout.getTabAt(1).setCustomView(R.layout.entry); //設(shè)置了自定義view,setText之類的方法就沒(méi)用了
1
1
1
1
1
1
1
1
1
1
1
1