Android中TabLayout怎么设置指示器宽度
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,本文小编为大家详细介绍"Android中TabLayout怎么设置指示器宽度",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中TabLayout怎么设置指示器宽度"文章能帮助大家解决疑惑
千家信息网最后更新 2025年01月20日Android中TabLayout怎么设置指示器宽度
本文小编为大家详细介绍"Android中TabLayout怎么设置指示器宽度",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中TabLayout怎么设置指示器宽度"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
anroid 5.0 Design v7 包中引用了TabLayout 简单快速的写出属于自己的Tab切换效果 如图所示:
但是正常使用中你发现无法设置tablayout指示器的宽度。查看源码你会发现设计师将指示器的宽度设置成TabView最大的宽度。并且设计师并没有给我们暴漏出接口,这导致有时使用TabLayout无法满足一些产品设计要求,这么好的组件无法使用还需要自定义费时费力。这个时候我们可以通过反射机制拿到TabLayout中的指示器对象对它的宽度进行处理就可以满足我们的要求:具体代码如下
重写 onMeasure方法
@Overrideprotected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { super.onMeasure(widthMeasureSpec, heightMeasureSpec); int dp10 = CommUitls.dip2px(context, 10); LinearLayout mTabStrip = (LinearLayout) this.getChildAt(0); try { Field mTabs = TabLayout.class.getDeclaredField("mTabs"); mTabs.setAccessible(true); ArrayListtabs = (ArrayList ) mTabs.get(this); for (int i = 0; i < mTabStrip.getChildCount(); i++) { Tab tab = tabs.get(i); Field mView = tab.getClass().getDeclaredField("mView"); mView.setAccessible(true); Object tabView = mView.get(tab); Field mTextView = context.getClassLoader().loadClass("android.support.design.widget.TabLayout$TabView").getDeclaredField("mTextView"); mTextView.setAccessible(true); TextView textView = (TextView) mTextView.get(tabView); float textWidth = textView.getPaint().measureText(textView.getText().toString()); View child = mTabStrip.getChildAt(i); child.setPadding(0, 0, 0, 0); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams((int) textWidth, LinearLayout.LayoutParams.MATCH_PARENT); params.leftMargin = dp10; params.rightMargin = dp10; child.setLayoutParams(params); child.invalidate(); } } catch (Exception e) { e.printStackTrace(); }}
读到这里,这篇"Android中TabLayout怎么设置指示器宽度"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
宽度
指示
指示器
文章
设计
内容
设计师
处理
妥当
最大
产品
产品设计
代码
可以通过
对象
思路
接口
效果
新知
方法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
风暴英雄建筑数据库
剑灵服务器地址
无锡党委党组网络安全责任
香港服务器ip段
剑网三登不上服务器
简单 软件开发合同模板
宝山区品牌网络技术备案
苏州软件开发定制价格表
网络安全怎样写的
rust架设服务器教程
邮件无法验证服务器身份 已过期
iphone 主机服务器
jsp登录查询数据库
服务器端构建vue代码
adodc查询数据库中数据
金融科技与互联网知乎
俄罗斯网络安全框架
跨境电商云服务器配置
数据库locking
什么是汽车嵌入式软件开发
外包软件开发质量把关
英雄联盟登录服务器叫什么
怎么登录服务器上的数据库
不属于网络安全的主要特征是
宁波可易互联网科技
结火网络技术
如何成为网络技术的牛人
东大网络安全夏令营
tp路由器dns服务器异常
富国互联网科技