标题来写一个Tablayout和Viewpager的关联使用
依赖:implementation 'com.android.support:design:27.1.1’
首先看一下这个布局
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"></android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent"></android.support.v4.view.ViewPager>
下边就开始写Java代码
//首先用数组写出tablayout的标题还有集合里边写Fragment
private String [] mTitle = {"国际","国内"};
private List<Fragment> frags;
//还有一些控件的成员变量
private TabLayout mtabLayout;
private ViewPager mViewpager;
这里是一些实例化控件和设置标题以及集合添加Fragment
//实例化
mtabLayout = findViewById(R.id.tablayout);
mViewpager = findViewById(R.id.viewpager);
frags = new ArrayList<>()
//Tablayout设置标题
for (int i = 0;i<2;i++){
mtabLayout.addTab(mtabLayout.newTab().setText(mTitle[i]));
}
//为viewpager添加fragment
frags.add(new Frag1());
frags.add(new Frag2());
FragmentPagerAdapter适配器
//FragmentPagerAdapter适配器
mViewpager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
//前面两个方法照常写
@Override
public int getCount() {
return frags.size();
//return mTitle[position % mTitle.length];
}
@Override
public Fragment getItem(int position) {
return frags.get(position);
}
//然后再添加一个Char什么什么的方法
@Nullable
@Override
public CharSequence getPageTitle(int position) {
//返回值返回tablayout的标题
//这里边尽量写成集合不用数组,因为这里会有小BUG
return mTitle[position];
}
});
最后一步不要忘了关联一下
//tablayout关联viewpager
mtabLayout.setupWithViewPager(mViewpager);