Android中TabLayout怎么设置指示器宽度
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本文小编为大家详细介绍"Android中TabLayout怎么设置指示器宽度",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中TabLayout怎么设置指示器宽度"文章能帮助大家解决疑惑
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网科技公司华为
互联网最新的科技
互联网 科技公司
互联网络科技有限公司
广州互联网科技公司
华中科技大学互联网
时间互联网络科技
长亮科技互联网金融
互联网科技公司介绍
四川狮子座互联网科技
丰台科技园 互联网公司
佩信高科技互联网
互联网科技公司招聘
广州慧亚互联网科技怎么样
佳云科技和互联网广告
互联网经济与金融科技
天津腾达互联网科技有限公司
广州新华互联网科技学校电竞方面
互联网科技公司营业执照怎么办理
前海云享互联网科技
互联网科技工作委员会毛军
今日互联网科技
金融科技与互联网金融
互联网科技产品
南山科技园互联网公司有哪些
广西互联网科技孵化中心
明优互联网科技有限公司
互联网科技融合创新
东风日产互联网科技公司叫什么
网互联网络科技