public class MPagerAdapter extends FragmentPagerAdapter { private List<Fragment> fragments = new ArrayList<>(); private List<String> titles = new ArrayList<>(); FragmentManager fm; public MPagerAdapter(@NonNull FragmentManager fm) { super(fm); this.fm = fm; } @NonNull @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } @NonNull @Override public Object instantiateItem(@NonNull ViewGroup container, int position) { Fragment fragment = (Fragment) super.instantiateItem(container, position); fm.beginTransaction().show(fragment).commit(); return fragment; } @Override public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) { fm.beginTransaction().hide(fragments.get(position)); } public void addItem(Fragment fragment, String title) { fragments.add(fragment); titles.add(title); } @Nullable @Override public CharSequence getPageTitle(int position) { return titles.get(position); } }
MPagerAdapter pagerAdapter = new MPagerAdapter(getSupportFragmentManager()); pagerAdapter.addItem(BedFragment.newInstance("", ""), "全科"); pagerAdapter.addItem(BedFragment.newInstance("", ""), "本组"); viewDataBinding.inMain.viewpager.setAdapter(pagerAdapter); viewDataBinding.inMain.xTabLayout.setupWithViewPager(viewDataBinding.inMain.viewpager);
<com.androidkun.xtablayout.XTabLayout android:id="@+id/xTabLayout" android:layout_width="match_parent" android:layout_height="50dp" android:layout_centerInParent="true" app:xTabIndicatorColor="@color/toolbar" app:xTabIndicatorHeight="2dp" app:xTabIndicatorWidth="53dp" app:xTabMode="fixed" app:xTabSelectedTextColor="@color/toolbar" app:xTabSelectedTextSize="18sp" app:xTabTextColor="#333333" app:xTabTextSize="16sp" />