I have a FragmentPagerAdapter
which handles getting the current fragment, keeping track of the number of tabs and setting the tab title for each tab.
public class ClothingSectionsPagerAdapter extends FragmentPagerAdapter {
private String[] mCategories;
public ClothingSectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
public void setContext(Context context) {
mCategories = context.getResources().getStringArray(R.array.category);
}
@Override
public Fragment getItem(int position) {
return ClothingCategoryFragment.newInstance(mCategories[position]);
}
@Override
public int getCount() {
return mCategories.length;
}
@Override
public CharSequence getPageTitle(int position) {
Log.d("getPageTitle", mCategories[position]);
return mCategories[position];
}
}
In my activity I implement this class like so.
ClothingSectionsPagerAdapter sectionsPagerAdapter =
new ClothingSectionsPagerAdapter(getSupportFragmentManager());
sectionsPagerAdapter.setContext(this);
mViewPager.setAdapter(sectionsPagerAdapter);
mViewPager.addOnPageChangeListener(new TabLayout.TabLayoutOnPageChangeListener(mTabLayout));
mTabLayout.addOnTabSelectedListener(new TabLayout.ViewPagerOnTabSelectedListener(mViewPager));
mViewPager.setCurrentItem(startingFragmentPosition);
However when I run my app. The tabs are present but they are title-less. The getPageTitle
method is never called. How do I fix this?
Try this
mTabLayout.setupWithViewPager(mViewPager);