一个工具类实现自定义Tablayout的下划线宽度
** 只改变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的下划线宽度相关推荐
- 自定义TabLayout的下划线的长度
tablayout自定义导航线的长度的问题,我见网上有两个解决方案,我用到我的项目中都没效果,自己总结了一个方案: 一:如果你的项目中没有滑动的动画需求你可以自定义tablayout'的item,自然 ...
- 提供了一些工具类以及自定义 View,用于日常的 Android 快速开发
Androids 项目地址:1993hzw/Androids 简介:提供了一些工具类以及自定义 View,用于日常的 Android 快速开发.something about android 更多: ...
- VUE 爬坑之旅 -- 用 ES6 语法写一个工具类,并全局引用
在我前面的有一篇文章里有说过怎么引入外部的 JS 文件,详情见 VUE 爬坑之旅– 如何对公共JS,CSS进行统一管理,全局调用 .这里所说的外部 JS 文件指的是用 ES6 之前的老语法编写的各种 ...
- 装饰器/使用类和对象封装一个工具类
# coding:utf-8 # 装饰器是以@开头,@结构称为语法糖,装饰器的作用主要是给现有的函数增加一些额外的功能. # @classmethod # @staticmethod # @prope ...
- 一个工具类实现钉钉群头像效果
DingDingImage 项目地址:qiaoyhh/DingDingImage 简介:一个工具类实现钉钉群头像效果 更多:作者 提 Bug 标签: 拼图-钉钉- 描述 由几张图片拼成一张圆形图 ...
- 关于棋牌游戏的福建十三水的一个工具类(牌型分析、大小对比、自动摆牌、获取所有牌型组合)
关于棋牌游戏的福建十三水的一个工具类(牌型分析.大小对比.自动摆牌.获取所有牌型组合) 写的比较简陋,仅仅只是实现了而已,谈不上美观,大神们不要喷我 直接上图(个人研究使用,不允许用于不正当途径) 1 ...
- android自定义tab下划线变大,Android开发之设置TabLayout下方下划线的宽度
由于最近项目需要,需要设置tabLayout下方下划线的长度.笔者上网找了半天,也没有找到方法.后来了解到在源码中对tabLayout的下划线进行了设置.并没有方法可以直接设置. 然后,笔者看到了某位 ...
- JAVA中实用的一个工具类--Hutool
什么是Hutool Hutool是一个Java工具包,也就是一个工具箱,一个utils集合,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以简单粗暴.Hutool最初是作者项目中&quo ...
- 我的第一个ASP类(显示止一篇下一篇文章)
面向对象是现今编程语言的潮流,不过,ASP对面向对象的支持可是寒碜地很.现在感觉ASP的类也不过是一堆函数而已. 不过,在学校时没有学过面向对象的语言,我对面向对象的认识仍然是从ASP开始的. 记下我 ...
最新文章
- python入门代码示例-这可能是最好玩的python GUI入门实例!
- python3 requests 动态网页post提交数据_Python爬虫三:动态网页爬虫
- 安装mysql5.15.7版本_YUM方法安装mysql5.7版本
- js 继承的几种方式
- 从GitHub中整理出来的15个最受欢迎的Python开源框架,你喜欢哪个
- Hologres+Flink流批一体首次落地4982亿背后的营销分析大屏
- 带你手写基于 Spring 的可插拔式 RPC 框架(四)代理类的注入与服务启动
- 基于socket编程的多人聊天室
- 第九届蓝桥杯 明码(三种方法)
- Jquery 实现 qq迷你首页 切换效果
- 面对骚扰短信,不是回TD退订,而是要回0000!(附正确拦截骚扰短信教程)
- VUI参数语义,色彩原色图表,高宽比标示符含义图表
- 相思赋予谁 --知错
- 【Python】【Java】【面试】【WordPress】【深度学习】【开源软件】| Chat · 预告
- mysql数据库cpu使用情况查询_数据库占用cpu较高的查询
- java-php-python-ssm基于动漫论坛系统计算机毕业设计
- C语言进阶--万字讲解带你学会字符串函数
- CCTV 2006 感动中国人物揭晓
- c++ primer 第五版 阅读笔记四
- 平心静气,去火,去火
热门文章
- 1 阿里云Nginx配置https实现域名访问项目
- 升级Linux下的sudo
- keepalived详解和实战
- 安装RabbitMq启动运行出现服务无法启动 发生系统错误1067解决方案
- git error: RPC failed; curl 56 GnuTLS recv error 解决方案
- SpringBoot2.X + SpringCache + redis解决乱码问题
- html5的修改滚动条滑块样式,修改element-ui滚动条样式
- linux 远程 mysql,linux下mysql远程访问
- ros开发增加clion常用模板及初始化配置(一)
- android查看网页源码,流数据