** 只改变Tablayout的下划线的宽度,只需要一个工具类就可以可满足**

1、写个工具类 封装:

/*** @author FX* @date 2018/07/19 11:11* @fuction 使用工具类友好的修改系统Tablayout 下划线宽度*/
public class TabLayoutUtil {public static void setIndicator(TabLayout tabs, int leftDip, int rightDip, int bottomDip) {Class<?> tabLayout = tabs.getClass();Field tabStrip = null;try {tabStrip = tabLayout.getDeclaredField("mTabStrip");} catch (NoSuchFieldException e) {e.printStackTrace();return;}tabStrip.setAccessible(true);LinearLayout llTab = null;try {llTab = (LinearLayout) tabStrip.get(tabs);} catch (IllegalAccessException e) {e.printStackTrace();return;}int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, leftDip, Resources.getSystem().getDisplayMetrics());int right = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, rightDip, Resources.getSystem().getDisplayMetrics());int bottom = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, bottomDip, Resources.getSystem().getDisplayMetrics());for (int i = 0; i < llTab.getChildCount(); i++) {View child = llTab.getChildAt(i);child.setPadding(0, 0, 0, 0);LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1);params.leftMargin = left;params.rightMargin = right;params.bottomMargin = bottom;child.setLayoutParams(params);child.invalidate();}}
}复制代码

** 2. 在Activity中使用**

view_tab.post(new Runnable() {@Overridepublic void run() {TabUtils.setIndicator(tab_view,10,10);}
});
复制代码

可以看到只需要一行代码实现了Tablayout 的自定义动态设置下划线宽度,

简单的并不需要自定义Tablayout就可以满足需求。

欢迎下方留言评论 的帮助,可以打赏支持一下

微信

支付宝

一个工具类实现自定义Tablayout的下划线宽度相关推荐

  1. 自定义TabLayout的下划线的长度

    tablayout自定义导航线的长度的问题,我见网上有两个解决方案,我用到我的项目中都没效果,自己总结了一个方案: 一:如果你的项目中没有滑动的动画需求你可以自定义tablayout'的item,自然 ...

  2. 提供了一些工具类以及自定义 View,用于日常的 Android 快速开发

    Androids 项目地址:1993hzw/Androids  简介:提供了一些工具类以及自定义 View,用于日常的 Android 快速开发.something about android 更多: ...

  3. VUE 爬坑之旅 -- 用 ES6 语法写一个工具类,并全局引用

    在我前面的有一篇文章里有说过怎么引入外部的 JS 文件,详情见 VUE 爬坑之旅– 如何对公共JS,CSS进行统一管理,全局调用 .这里所说的外部 JS 文件指的是用 ES6 之前的老语法编写的各种 ...

  4. 装饰器/使用类和对象封装一个工具类

    # coding:utf-8 # 装饰器是以@开头,@结构称为语法糖,装饰器的作用主要是给现有的函数增加一些额外的功能. # @classmethod # @staticmethod # @prope ...

  5. 一个工具类实现钉钉群头像效果

    DingDingImage 项目地址:qiaoyhh/DingDingImage  简介:一个工具类实现钉钉群头像效果 更多:作者   提 Bug 标签: 拼图-钉钉- 描述 由几张图片拼成一张圆形图 ...

  6. 关于棋牌游戏的福建十三水的一个工具类(牌型分析、大小对比、自动摆牌、获取所有牌型组合)

    关于棋牌游戏的福建十三水的一个工具类(牌型分析.大小对比.自动摆牌.获取所有牌型组合) 写的比较简陋,仅仅只是实现了而已,谈不上美观,大神们不要喷我 直接上图(个人研究使用,不允许用于不正当途径) 1 ...

  7. android自定义tab下划线变大,Android开发之设置TabLayout下方下划线的宽度

    由于最近项目需要,需要设置tabLayout下方下划线的长度.笔者上网找了半天,也没有找到方法.后来了解到在源码中对tabLayout的下划线进行了设置.并没有方法可以直接设置. 然后,笔者看到了某位 ...

  8. JAVA中实用的一个工具类--Hutool

    什么是Hutool Hutool是一个Java工具包,也就是一个工具箱,一个utils集合,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以简单粗暴.Hutool最初是作者项目中&quo ...

  9. 我的第一个ASP类(显示止一篇下一篇文章)

    面向对象是现今编程语言的潮流,不过,ASP对面向对象的支持可是寒碜地很.现在感觉ASP的类也不过是一堆函数而已. 不过,在学校时没有学过面向对象的语言,我对面向对象的认识仍然是从ASP开始的. 记下我 ...

最新文章

  1. python入门代码示例-这可能是最好玩的python GUI入门实例!
  2. python3 requests 动态网页post提交数据_Python爬虫三:动态网页爬虫
  3. 安装mysql5.15.7版本_YUM方法安装mysql5.7版本
  4. js 继承的几种方式
  5. 从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个
  6. Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
  7. 带你手写基于 Spring 的可插拔式 RPC 框架(四)代理类的注入与服务启动
  8. 基于socket编程的多人聊天室
  9. 第九届蓝桥杯 明码(三种方法)
  10. Jquery 实现 qq迷你首页 切换效果
  11. 面对骚扰短信,不是回TD退订,而是要回0000!(附正确拦截骚扰短信教程)
  12. VUI参数语义,色彩原色图表,高宽比标示符含义图表
  13. 相思赋予谁 --知错
  14. 【Python】【Java】【面试】【WordPress】【深度学习】【开源软件】| Chat · 预告
  15. mysql数据库cpu使用情况查询_数据库占用cpu较高的查询
  16. java-php-python-ssm基于动漫论坛系统计算机毕业设计
  17. C语言进阶--万字讲解带你学会字符串函数
  18. CCTV 2006 感动中国人物揭晓
  19. c++ primer 第五版 阅读笔记四
  20. 平心静气,去火,去火

热门文章

  1. 1 阿里云Nginx配置https实现域名访问项目
  2. 升级Linux下的sudo
  3. keepalived详解和实战
  4. 安装RabbitMq启动运行出现服务无法启动 发生系统错误1067解决方案
  5. git error: RPC failed; curl 56 GnuTLS recv error 解决方案
  6. SpringBoot2.X + SpringCache + redis解决乱码问题
  7. html5的修改滚动条滑块样式,修改element-ui滚动条样式
  8. linux 远程 mysql,linux下mysql远程访问
  9. ros开发增加clion常用模板及初始化配置(一)
  10. android查看网页源码,流数据