/**
* 通过反射{@link TabLayout}设置下划线(Indicator)宽度,字多宽线就多宽,参阅 https://blog.csdn.net/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 =
通过反射TabLayout设置下划线宽度,字多宽线就多宽,设置选项之间分割线
本文介绍如何通过反射技术在TabLayout中动态设置每个选项的下划线宽度,使得下划线宽度与对应文字宽度保持一致,同时讲解如何添加选项之间的分割线,提升界面定制化效果。
摘要由CSDN通过智能技术生成