android gridlayout动态添加_Android-TabLayout-动态设置TabItem的背景Shape.有坑.......
坑1: TabItem添加id属性,然后用注解绑定,发现找不到,卧槽。。。如下不要去找那个item。用tablayout去动态获取。
<android.support.design.widget.TabLayoutandroid:id="@+id/fkg_tableyout"android:layout_width="match_parent"android:layout_height="32dp"app:elevation="0dp"app:layout_constraintTop_toTopOf="parent"app:tabGravity="center"app:tabIndicatorHeight="0dp"app:tabMode="fixed"app:tabPaddingEnd="16dp"app:tabPaddingStart="24dp"app:tabSelectedTextColor="@color/green_all_bg"app:tabTextAppearance="@style/MyCustomTextAppearance2"app:tabTextColor="@color/white"><android.support.design.widget.TabItemandroid:id="@+id/dfdsf"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="知识库" /><android.support.design.widget.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="新闻资讯" /></android.support.design.widget.TabLayout>
坑2 - 这是我的方式,目前测试没有问题: 循环获取fkg_tableyout.getTabCount()的时候,不要直接在UI线程里面,太早了。虽然可以获取到,但是此时tab位置不确定,你如果靠第几个去设置背景,容易出问题。所以建议延迟获取,或者如下:
HashMap<Integer, TabLayout.Tab> tabList = new HashMap<>();fkg_tableyout.addOnTabSelectedListener(new TabLayout.BaseOnTabSelectedListener() {@Overridepublic void onTabSelected(TabLayout.Tab tab) {// 这里才是加载完后获取对应位置的数据,不然会错位的if (tabList.size() <= 0) {for (int i = 0; i < fkg_tableyout.getTabCount(); ++i) {tabList.put(fkg_tableyout.getTabAt(i).getPosition(), fkg_tableyout.getTabAt(i));}}if (0 == tab.getPosition()) {ViewCompat.setBackground(tabList.get(0).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_white_shape));ViewCompat.setBackground(tabList.get(1).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_green_shape));} else {ViewCompat.setBackground(tabList.get(0).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_green_shape2));ViewCompat.setBackground(tabList.get(1).view, mContext.getResources().getDrawable(R.drawable.tab_green_stroke_solid_white_shape2));}}@Overridepublic void onTabUnselected(TabLayout.Tab tab) {}@Overridepublic void onTabReselected(TabLayout.Tab tab) {}});
3. 建议最好还是动态创建Tab,然后添加,那样比较靠谱。。 网上有类似动态修改的方式,你可以参考,遇到问题,多调试吧。。我也是折腾了一久。。。
这是Tablayout的配置。。。
<!--app:tabBackground="@drawable/tab_selector"--><android.support.design.widget.TabLayoutandroid:id="@+id/fkg_tableyout"android:layout_width="match_parent"android:layout_height="32dp"app:elevation="0dp"app:layout_constraintTop_toTopOf="parent"app:tabGravity="center"app:tabIndicatorHeight="0dp"app:tabMode="fixed"app:tabPaddingEnd="16dp"app:tabPaddingStart="24dp"app:tabSelectedTextColor="@color/green_all_bg"app:tabTextAppearance="@style/MyCustomTextAppearance2"app:tabTextColor="@color/white"><android.support.design.widget.TabItemandroid:layout_width="wrap_content"android:id="@+id/dfdsf"android:layout_height="wrap_content"android:text="知识库" /><android.support.design.widget.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="新闻资讯" /></android.support.design.widget.TabLayout>
效果:
我之前都是动态创建的,哈哈。。这次尝试了不太一样的方式.......喵....
android gridlayout动态添加_Android-TabLayout-动态设置TabItem的背景Shape.有坑.......相关推荐
- Qt封装TDMS文件实现动态添加组以及动态写入通道数据
TDMS文件: TDMS文件是NI主推的一种二进制记录文件,TDMS文件由三个层次结构级别组成:文件.组.通道.在NI的LabVIEW软件中,可通过许多接口直接访问NI TDMS文件,但使用LABVI ...
- Vue中 动态添加class写法 动态静态clas混合
Vue中 动态添加class写法 动态静态clas混合 示例 //fx,cont-block为静态class ob为动态class <div :class="[ 'fx','cont- ...
- 动态添加综合布局---动态添加控件及将某XML动态加入到Activity显示(续)
前言:以前曾写过一篇关于动态生成控件的文章<动态添加控件及将某XML动态加入到Activity显示>,比较浅显,对于RelativeLayout的相关布局设置方法及相对布局与线性布局的混合 ...
- 动态添加 ajax,ajax动态的添加内容【原创】
以前只是见过很多动态添加内容的效果,这次还是自己第一次在项目里接触到呢,就简单记录下来了,希望对大家有帮助. 这里的效果是选中一个选择框,对应的内容区就会相应的出现对应的详细内容,取消选择框,对应的内 ...
- php动态添加查询,php动态添加url查询参数的方法,php动态url参数_PHP教程
php动态添加url查询参数的方法,php动态url参数 本文实例讲述了php动态添加url查询参数的方法.分享给大家供大家参考.具体分析如下: 这段代码可以动态为url添加key-value查询参数 ...
- layui option 动态添加_layui select动态添加option的实例
html 产品类别 轻松融 容易融 快乐融 增加产品类别 js //重新渲染表单 function renderForm(){ layui.use('form', function(){ var fo ...
- python动态添加类方法_Python 动态添加类方法
习题: 1. Shape基类,要求所有子类都必须提供面积的计算,子类有三角形.矩形.圆. 2. 上题圆类的数据可序列化 第一种方法:使用Mixin多继承组合的方式,混入其它类的属性和方法 第二种方法: ...
- layui option 动态添加_layuiselect如何动态添加option
这次给大家带来layui select如何动态添加option,layui select动态添加option的注意事项有哪些,下面就是实战案例,一起来看一下. html 产品类别 轻松融 容易融 快乐 ...
- Elastic-Job:动态添加任务,支持动态分片
多情只有春庭月,犹为离人照落花. 概述 因项目中使用到定时任务,且服务部署多实例,因此需要解决定时任务重复执行的问题.即在同一时间点,每一个定时任务只在一个节点上执行.常见的开源方案,如 elasti ...
最新文章
- BZOJ.3218.a + b Problem(最小割ISAP 可持久化线段树优化建图)
- Hsiaoyang: Google与站点地图Sitemap
- centos7 geenplum5.x postgis开源版本编译
- Remoting疑惑续集之再续
- python中字典按键或键值排序_[宜配屋]听图阁
- An attempt by a client to checkout a Connectio n has timed out报错解决
- SHELL 分析 列出当天访问次数最多的IP
- 如何不重启热更新线上 Java 代码?
- 记录片《货币》- 有价星球笔记
- 如何破解锐捷支持多网卡
- 路由器 OSPF 动态路由配置
- Cartesian coordinate system
- VR 与 AR 开发实战
- ​Android实现仿QQ登录可编辑下拉菜单
- Python实现电子钢琴及封装
- (64)-- 爬取58同城网页信息
- STM32 keyboard USB HID键盘功能的实现
- MAC双系统U盘安装方法
- 0057-在OpenCV环境下使用KNN背景建模提取前景目标
- R语言心得说:R语言之xlsx包读写Excel数据
热门文章
- python语言数据挖掘python语言数据_Python语言数据挖掘01-环境搭建
- python高阶函数、map reduce 自己如何去定义_「python」高阶函数map、reduce的介绍
- php 取数组数量_PHP array_slice():截取数组的一部分
- 【2017年第4期】专题:大数据标准
- 李名洋(1983-),男,中国电信股份有限公司云计算分公司数据分析师。
- 【数字逻辑设计】Logisim构建四位行波进位加法器
- win10系统同时安装python2和python3
- DoTween NGUI bug
- 兔子--百度地图所需的jar+so下载地址
- jQuery刻度尺滚动滑块插件