接上文
ViewPager+Fragment+Tablayout的使用
1.xml设置TabLayout和Viewpager
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.edu.cumulus.tablayoutdemo.TabViewPagerActivity">
<android.support.v4.view.ViewPager
android:id="@+id/vp"
android:layout_width="match_parent"
android:layout_weight="1"
android:layout_height="0dp">
</android.support.v4.view.ViewPager>
<android.support.design.widget.TabLayout
android:id="@+id/tabLayout"
app:tabTextColor="#000000"
app:tabSelectedTextColor="#fa6a13"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
2. 为Viewpager创建适配器
public class CityFMAdapte rextends FragmentPagerAdapter {
private ArrayList<Fragment> mListFM;
private String [] arr;
//
public CityFMAdapter(FragmentManager fm, ArrayList mListfm, String[] arr) {
super(fm);
this.mListfm = mListfm;
this.arr = arr;
}
@Override
public Fragment getItem(int position) {
return mListfm.get(position);
}
@Override
public int getCount() {
return mListfm.size();
}
@Nullable
@Override
public CharSequence getPageTitle(int position) {
return arr[position ];
}
}
主要是重写getPageTitle()方法
3. 代码设置 TabLayout和Viewpager绑定
tabLayout=(TabLayout)findViewById(R.id.tab_layout);
mViewPager=(ViewPager)findViewById(R.id.container);
mSectionsPagerAdapter=newSectionsPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mSectionsPagerAdapter);
// 绑定,要在viewpager设置完数据后,调用此方法,否则不显示 tabs文本
tabLayout.setupWithViewPager(mViewPager);
调用setupWithViewPager()方法,则使用TabLayout.addtab()方法无效,TabLayout会清除之前添加的所有tabs,并将根据Viewpager的页数添加Tab,Tab标题为对应页通过getPageTitle()返回的文本
使用Tab.setCustomView()