tabLayout改变下划线的宽度
来源:互联网 发布:win7旗舰版打不开软件 编辑:程序博客网 时间:2024/05/22 14:26
tabLayout.post(new Runnable() { @Override public void run() { try { //拿到tabLayout的mTabStrip属性 Field mTabStripField = tabLayout.getClass().getDeclaredField("mTabStrip"); mTabStripField.setAccessible(true); LinearLayout mTabStrip = (LinearLayout) mTabStripField.get(tabLayout); for (int i = 0; i < mTabStrip.getChildCount(); i++) { View tabView = mTabStrip.getChildAt(i); //拿到tabView的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(); int dp10 = DensityUtil.dip2px(picActivity, 40); params.width = width ; params.leftMargin = dp10; params.rightMargin = dp10; tabView.setLayoutParams(params); tabView.invalidate(); } } catch (NoSuchFieldException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }});
阅读全文
0 0
- tabLayout改变下划线的宽度
- 设置tablayout下划线的宽度
- Android TabLayout下方下划线的宽度
- tablayout 设置下划线宽度。
- 改变TabLayout的线的宽度
- TabLayout设置下划线(Indicator)宽度
- TabLayout设置下划线(Indicator)宽度
- TabLayout设置下划线(Indicator)宽度
- Android开发之设置TabLayout下方下划线的宽度
- Android--使用反射修改TabLayout下划线宽度
- TabLayout设置TabView宽度、下划线宽度和字体大小
- 修改TabLayout下划线的宽度和文字和线的距离
- Tablayout设置下划线宽度以及遇到空指针问题。
- 通过修改指示器的间距来改变TabLayout指示器的宽度
- TabLayout的指示器宽度问题
- 设置Tablayout的tab宽度
- 自定义Tablayout下线的宽度
- TabLayout设置指示器的宽度
- template.js
- STM32串口打印printf发送中文乱码问题
- Java 中的两种查找算法方式
- 简单数谜 (caioj1044)
- DateTimePicker控件CustomFormat格式字符串及其说明
- tabLayout改变下划线的宽度
- python 解决数组赋值问题
- 第15周项目2
- APK 混淆文章推荐
- 彻底征服 Spring AOP 之 实战篇
- 设置分屏
- C++基础——用C++实例理解UML类图
- 第二周项目一之程序的多文件组织
- 数据结构课程大总结