最近在使用PagerSlidingTabStrip的时候遇到过这样一个问题,就是TabPageIndicator里面的cell给的英文,无论后台返回的是大写还是小写,最后显示的时候,都变成了大写,看了源码分析.
// if (textAllCaps) {//用来改变字体大小写的
// if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
// tab.setAllCaps(true);
// } else {
// // tab.setText(tab.getText().toString().toUpperCase(locale));
// }
// }
// }
把 PagerSlidingTabStrip 这段逻辑注释掉即可
else 是转化全部把String转化为大写, 那if呢?
tab.setAllCaps(true);//这里tab是继承TextView的自定义TextView, 这句代码的意思也是把英文都转化为大写.
并且,他是优于totoUpperCase()的, 因为如果不把这几行注释掉,而是在这几行代码的下面一行另外写上:
tab.setText(tab.getText().toString().toLowerCase(locale)); 你会发现结果失效,显示的UI没有任何改变效果!
备注:
tab.setAllCaps(true);//英文改大写
tab.setAllCaps(true);英文改小写
// setAllCaps() is only available from API 14, so the upper case is made manually if we are on a // pre-ICS-build