Android中TabLayout怎么设置指示器宽度
发表于:2024-10-27 作者:千家信息网编辑
千家信息网最后更新 2024年10月27日,本文小编为大家详细介绍"Android中TabLayout怎么设置指示器宽度",内容详细,步骤清晰,细节处理妥当,希望这篇"Android中TabLayout怎么设置指示器宽度"文章能帮助大家解决疑惑
千家信息网最后更新 2024年10月27日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安全错误
数据库的锁怎样保障安全
怀旧服胸甲极效法力数据库
数据库教程 下载
数据库技术应用教程书籍封面
关于单片机软件开发集成环境
信息技术数据库教材
手机无法检测网络安全配置
2017中国网络安全年会
华为服务器芯片供应商是苹果吗
网络安全生态策略
网络安全对家庭
华为8路电视墙服务器
小米路由器家庭ftp服务器搭建
自走棋移动网络服务器
nodejs数据库占位符
软件开发交付有哪些资料
如何判断服务器同时被人访问
光伏电站网络安全
饥荒专用服务器关服指令在哪输入
数据库过滤技术
软件开发有技术含量没
网络安全分析皮肤
我的世界2b2t服务器为什么不火了
辽宁省财政指标数据库导入
广播电视网络安全抢答赛
网络安全大赛ctf中国队
三级网络技术又要求吗
网络安全知识点5条
生产数据库安全操作规范
软件开发自测
寻微网络技术有限公司电话