当前位置: 首页 > news >正文

Android Tablayout样式修改

Android Tablayout样式修改

一、需求

在这里插入图片描述
这是TabLayout的样式需求:这个样式就类似于简单图片的指示器,特点就是比较小,不像之前写的带有文字的tablayout

二、实现

1.首先需要绘制两个drawable,用来制定drawable的形状
这个drawable是蓝色指示器—选中的形状
tab_bottom_indicator_select.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:gravity="center_horizontal">
        <shape>
            <size android:width="10dp" android:height="4dp"/>
            <corners android:radius="2dp"/>
        </shape>
    </item>
</layer-list>

这个是drawable是灰色指示器—未选中的形状
tab_bottom_indicator_unselect.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:gravity="center_horizontal">
        <shape>
            <size android:width="6dp" android:height="4dp"/>
            <corners android:radius="2dp"/>
            <solid android:color="#606266"/>
        </shape>
    </item>
</layer-list>

TabLayout的属性设置

选中指示器的形状设置

对于TabLayout中tabIndicator属性,drawable的颜色填充是无效的,只能用drawable的形状

app:tabIndicator="@drawable/tab_bottom_indicator_select"

未选中指示器的形状设置–即默认形状

 app:tabBackground="@drawable/tab_bottom_indicator_unselect"

2.指示器形状已经绘制好,现在需要填充颜色
选中的颜色属性

app:tabIndicatorColor="@color/blue"

这时候绘制出来的 两个tab之间的间距比较大,而我们需要间距调小

  app:tabMaxWidth="12dp"

设置这个属性就好了

三、整体代码设置

<com.google.android.material.tabs.TabLayout
    android:layout_width="wrap_content"
    android:layout_height="4dp"
    app:tabBackground="@drawable/tab_bottom_indicator_unselect"
    app:tabGravity="center"
    app:tabIndicator="@drawable/tab_bottom_indicator_select"
    app:tabIndicatorColor="@color/blue"
    app:tabIndicatorGravity="top"
    app:tabIndicatorHeight="4dp"
    app:tabMaxWidth="12dp"
    app:tabMode="fixed" />

完成,撒花

相关文章:

  • 朋友圈那位隐藏大佬的单片机学习心得
  • Android系统启动流程全解析--你知道Android系统启动都干了啥吗
  • openGl绘制五星红旗
  • 【数据结构】二叉树
  • HTML常用标签二
  • 高数(下) 第十二章:无穷级数
  • 【GOF】三种工厂模式~
  • 算法 |【实验5.2】1-深度优先搜索暴力求解旅行商问题
  • OpenCV-Python学习(2)—— OpenCV 图像的读取和显示
  • Unity技术手册-初识编辑器(上)
  • 基于Java+SpringBoot+vue+elementui图书商城系统设计实现
  • 电子病历结构化之实体识别(附完整项目代码)
  • 手写Spring——bean的扫描、加载和实例化
  • 【Vue】Vue的v-if、v-if-else、v-else-if、v-show的使用
  • 【设计模式】创建型模式:单例模式
  • [微信小程序] 使用ES6特性Class后出现编译异常
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • Apache Zeppelin在Apache Trafodion上的可视化
  • echarts的各种常用效果展示
  • Java 网络编程(2):UDP 的使用
  • SQLServer插入数据
  • Transformer-XL: Unleashing the Potential of Attention Models
  • Vue.js 移动端适配之 vw 解决方案
  • vue从创建到完整的饿了么(11)组件的使用(svg图标及watch的简单使用)
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • vue--为什么data属性必须是一个函数
  • -- 查询加强-- 使用如何where子句进行筛选,% _ like的使用
  • 聊聊directory traversal attack
  • 判断客户端类型,Android,iOS,PC
  • 驱动程序原理
  • 如何使用 JavaScript 解析 URL
  • 我看到的前端
  • linux 淘宝开源监控工具tsar
  • zabbix3.2监控linux磁盘IO
  • ​LeetCode解法汇总2182. 构造限制重复的字符串
  • ​无人机石油管道巡检方案新亮点:灵活准确又高效
  • #14vue3生成表单并跳转到外部地址的方式
  • #if和#ifdef区别
  • #Java第九次作业--输入输出流和文件操作
  • #Ubuntu(修改root信息)
  • #我与Java虚拟机的故事#连载09:面试大厂逃不过的JVM
  • (173)FPGA约束:单周期时序分析或默认时序分析
  • (3)nginx 配置(nginx.conf)
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (附源码)计算机毕业设计ssm基于B_S的汽车售后服务管理系统
  • (十) 初识 Docker file
  • (十五)Flask覆写wsgi_app函数实现自定义中间件
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • .mysql secret在哪_MYSQL基本操作(上)
  • .NET 回调、接口回调、 委托
  • .NET 中 GetHashCode 的哈希值有多大概率会相同(哈希碰撞)
  • [ element-ui:table ] 设置table中某些行数据禁止被选中,通过selectable 定义方法解决
  • [Android开源]EasySharedPreferences:优雅的进行SharedPreferences数据存储操作
  • [BZOJ] 2044: 三维导弹拦截
  • [C++基础]-入门知识