原因
别人的原理转载: TabLayout使用setupWithViewPager()方法绑定Viewpager后不显示文字.
改代码
链接中给出的代码是这样的,当然那个titles是根本不知道哪里引来的。
@Override
public CharSequence getPageTitle(int position) {
return titles.get(position);
}
本身输入getPageTitle直接生成的是
public CharSequence getPageTitle(int position) {
return super.getPageTitle(position);
}
其实我觉得也不太好使,不懂super去哪了,这应该是要么用list,要么像我这样直接return一个char。这段代码写在Adapter里,就在public class里。
@Nullable
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return "第一页";
case 1:
return "第二页";
case 2:
return "page three";
default:
return null;
}
}
};
这样输出的英文是全部大写的,需要一个转换.toLowerCase()的转换
@Override
public CharSequence getPageTitle(int position) {
return "Tab " + (position + 1)).toLowerCase();
}
感谢百度,用半天AI也没问明白。但是我不明白我在setupWithViewPager之后根据转载链接设置添加,也没有用是为什么,求解答。
tabLayout.getTabAt(0).setText(“tab 1”);
tabLayout.getTabAt(1).setText(“tab 2”);
tabLayout.getTabAt(2).setText(“tab 3”);