Android中TabLayout怎么设置指示器宽度
发表于:2025-11-11 作者:千家信息网编辑
千家信息网最后更新 2025年11月11日,本文小编为大家详细介绍"Android中TabLayout怎么设置指示器宽度",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中TabLayout怎么设置指示器宽度"文章能帮助大家解决疑惑
千家信息网最后更新 2025年11月11日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); ArrayList tabs = (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安全错误
数据库的锁怎样保障安全
网络安全普法宣传创意视频
网络安全什么时候提出的
智慧团建获取数据库发生错误
地理数据库概念
网络网络安全法
php获取服务器环境
不要钱的网络安全知识
歪歪导航软件开发
华为网络安全设备厂商
手机投屏到服务器教程
麒麟系统远程服务器
苹果联网控制软件开发
网络安全员语言
如何组建家庭服务器
浙江桌面软件开发
亚马逊收购电影数据库公司吗
我的世界50人服务器要多少钱
浪潮服务器套件
数据库系统中并发控制的方法
江苏交友软件开发靠谱吗
软件开发在猪八戒平台
网络安全答题活动的意义
gerber软件开发
p2p借贷系统的网络技术
服务器cpu一般几核
西甲视频软件开发
无锡光学制图软件开发公司
亚马逊收购电影数据库公司吗
加强网络安全管理化
滕州软件开发者