/**
* 通过反射{@link TabLayout}设置下划线(Indicator)宽度,字多宽线就多宽,参阅 https://blog.youkuaiyun.com/waplyj/article/details/81068127
*/
public static void setTabLayoutIndicator(final TabLayout tabLayout) {
//了解源码得知 线的宽度是根据 tabView的宽度来设置的
tabLayout.post(new Runnable() {
@Override
public void run() {
try {
Field field = tabLayout.getClass().getDeclaredField("mTabStrip");
field.setAccessible(true);
//拿到tabLayout的mTabStrip属性
LinearLayout tabStrip = (LinearLayout) field.get(tabLayout);
for (int i = 0, count = tabStrip.getChildCount(); i < count; i++) {
View tabView = tabStrip.getChildAt(i);
//拿到tabView的mTextView属性 tab的字数不固定一定用反射取mTextView
Field mTextViewField = tabView.getClass().getDeclaredField("mTextView");