更改Tab下划线的宽度
来源:互联网 发布:股票交易数据下载 编辑:程序博客网 时间:2024/05/29 12:25
通过反射更改下划线的宽度
public static void setIndicator(final TabLayout tabLayout){ tabLayout.post(new Runnable() { @Override public void run() { try { //拿到tabLayout的mTabStrip属性 LinearLayout mTabStrip = (LinearLayout) tabLayout.getChildAt(0); //tab 的左右边距 int dp = CompanyUtil.dip2px(tabLayout.getContext(), 20); for (int i = 0; i < mTabStrip.getChildCount(); i++) { View tabView = mTabStrip.getChildAt(i); //拿到tabView的mTextView属性 tab的字数不固定一定用反射取mTextView Field mTextViewField = tabView.getClass().getDeclaredField("mTextView"); mTextViewField.setAccessible(true); TextView mTextView = (TextView) mTextViewField.get(tabView); tabView.setPadding(0, 0, 0, 0); //因为我想要的效果是 字多宽线就多宽,所以测量mTextView的宽度 int width = 0; width = mTextView.getWidth(); if (width == 0) { mTextView.measure(0, 0); width = mTextView.getMeasuredWidth(); } //设置tab左右间距为10dp 注意这里不能使用Padding 因为源码中线的宽度是根据 tabView的宽度来设置的 LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) tabView.getLayoutParams(); params.width = width ; params.leftMargin = dp; params.rightMargin = dp; tabView.setLayoutParams(params); tabView.invalidate(); } } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } } });}
阅读全文
0 0
- 更改Tab下划线的宽度
- 设置tablayout下划线的宽度
- tabLayout改变下划线的宽度
- 修改vi的tab宽度
- Android ActionBar Tab的宽度
- 设置Tablayout的tab宽度
- Android TabLayout下方下划线的宽度
- Android 更改EditText下划线的颜色样式
- 修改vim的tab键的宽度
- QTabWidget如何设置tab头的宽度
- linux中设置TAB键的宽度
- linux中设置Tab键的宽度
- qt QTabWidget设置tab头的宽度
- vim中设置tab键的宽度
- tablayout 设置下划线宽度。
- Android开发之设置TabLayout下方下划线的宽度
- android带彩色下划线的tab移动导航
- Android 实现下划线能滑动的Tab标签页
- ViewPager圆形指示器
- VMware® Workstation 14 Pro产品密钥
- 树状数组入门[例题详解]
- SQL RIGHT JOIN 关键字
- 开发和编程的区别竟然是...
- 更改Tab下划线的宽度
- 位图(.bmp)文件结构
- POJ 1006 中国剩余定理
- 许多媒体发布的内容不经检查,非常随意
- 1064. 朋友数(20)
- 常见算法
- SQL FULL OUTER JOIN 关键字
- ScrollView与ListView 的滑动冲突
- JavaFX与Spring 集成