Android---TabLayout
目录
TabLayout
TabItem
编辑
演示效果的xml
TabLayout
TabLayout 在开发中一般作为选项卡使用,常与 ViewPager2 和 Fragment 结合起来使用。
常用属性:
app:tabBackground 设置 TabLayout 的背景色,改变整个TabLayout 的颜色;
app:tabTextColor 设置未被选中时文字的颜色;
app:tabSelectorColor 设置选中时文字颜色;
app:tabTextAppearance="@android:style/TextAppearance.Large" 设置 TabLayout 的文本主题,无法通过 textSize 来设置文字大小,只能通过主题来设定;
app:tabMode="scrollable"设置 TabLayout 可滑动,当 tabItem 个数较多时,一个界面无法呈现所有的导航标签,此时就必须要用;
app:tabIndicator 设置指示器;
app:tabIndicatorColor 设置指示器颜色;
app:tabIndecatorHeight 设置指示器高度,当 app:tabIndecatorHeight="0dp",隐藏 Indicator 效果;
app:tabTextAppearance="@android:style/TextAppearance.Holo.Large" 改变 TabLayout 里 TabItem 文字的大小;
app: tabPadding 设置 Tab 内部 item 的 padding。也可以单独设置某个方向的padding, 比如 app:tabPaddingStart 设置左边距;
app:paddingEdng / app:paddingStart 设置整个 TabLayout 的 padding;
app:tabGravity="center" 居中,如果是 fill,则充满;
app:tabMaxWidth / app:tabMinWidth 设置最大/最小的 tab 宽度,对 Tab 的宽度进行限制。
TabItem
给TabLayout 添加 Item 有两种方法,其中一种就是使用 TabItem 在 xml 里直接添加。
1. 使用TabItem 给 TabLayout 添加卡片。
<com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_add"android:text="添加"/>
android:icon 设置图标;
Android:text 设置文本;
2. 通过代码添加。使用 TabLayoutMediator()
new TabLayoutMediator(binding.tab, binding.viewPager, new TabLayoutMediator.TabConfigurationStrategy() {@Overridepublic void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {//TODO 设置卡片的文本/图标tab.setText(mTitles.get(position)).setIcon(mIcons.get(position));}}).attach();
其中 mTitles 和 mIcons 是存放 text 和 Icon 的list。效果如下:
可以看到 text 在英文状态下默认都是大写, 这是因为在 TabLayout 的源码中默认设置属性 textAllCaps=true。所以可以在 TabLayout 中设置如下属性来改成小写。
app:tabTextAppearance="@android:style/TextAppearance.Widget.TabWidget"
演示效果的xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><com.google.android.material.tabs.TabLayoutandroid:id="@+id/tabs"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_margin="8dp"><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_add"android:text="添加"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_delete"android:text="删除"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_camera"android:text="相机"/></com.google.android.material.tabs.TabLayout><com.google.android.material.tabs.TabLayoutandroid:id="@+id/tabs1"style="@style/Widget.MaterialComponents.TabLayout"android:layout_width="match_parent"android:layout_height="wrap_content"app:tabMode="scrollable"android:layout_margin="8dp"><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_add"android:text="添加"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_delete"android:text="删除"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_camera"android:text="相机"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_add"android:text="添加"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_delete"android:text="删除"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_camera"android:text="相机"/></com.google.android.material.tabs.TabLayout><com.google.android.material.tabs.TabLayoutandroid:id="@+id/tabs2"style="@style/Widget.MaterialComponents.TabLayout.Colored"android:layout_width="match_parent"android:layout_height="wrap_content"app:tabIndicatorColor="@color/purple_700"android:layout_margin="8dp"><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_add"android:text="添加"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_delete"android:text="删除"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_camera"android:text="相机"/></com.google.android.material.tabs.TabLayout><com.google.android.material.tabs.TabLayoutandroid:layout_margin="8dp"android:id="@+id/tabs3"style="@style/Widget.Design.TabLayout"android:layout_width="match_parent"android:layout_height="wrap_content"><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_add"android:text="添加" /><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_call"android:text="删除" /><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_camera"android:text="菜单" /></com.google.android.material.tabs.TabLayout><com.google.android.material.tabs.TabLayoutandroid:id="@+id/tabs4"app:tabTextAppearance="@android:style/TextAppearance.Holo.Large"android:layout_width="match_parent"android:layout_height="wrap_content"app:tabIndicatorHeight="0dp"android:layout_margin="8dp"><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_add"android:text="add"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_delete"android:text="删除"/><com.google.android.material.tabs.TabItemandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:icon="@android:drawable/ic_menu_camera"android:text="相机"/></com.google.android.material.tabs.TabLayout></LinearLayout>
Android---TabLayout相关推荐
- Android TabLayout(选项卡布局)简单用法实例分析
本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到 ...
- Android TabLayout定制CustomView与ViewPager交互双向联动
Android TabLayout定制CustomView与ViewPager交互双向联动 我之前写了一些关于Android Material Design TabLayout的文章, (1)& ...
- Android TabLayout和ViewPager
In this tutorial we'll be implementing a ViewPager under the TabLayout that we'd already implemented ...
- AppBarLayout中的Android TabLayout
In this tutorial, we'll discuss and implement Android TabLayout in our android application. Also we' ...
- Android TabLayout 宽度无法充满屏幕
Android TabLayout 宽度无法充满屏幕 我们在使用TabLayout的时候,很多时候都需要宽度充满屏幕,并且平分屏幕.类似于如下的效果: 但很多时候我们在使用了如下代码的时候发现TabL ...
- Android TabLayout选项卡点击选中Ripple水波纹
Android TabLayout选项卡点击时候选中的Ripple水波纹 如果要实现自定义的TabLayout选项卡被点击选中时候的水波纹效果,要从xml属性定义中的: app:tabBackgrou ...
- Android TabLayout总结
文章目录 Android TabLayout总结 基本使用 添加图标.隐藏下划线 自定义下划线.添加分割线 设置角标 圆角样式 自定义View+Lottile 代码下载 Android TabLayo ...
- Android tabLayout+recyclerView实现锚点定位
原文链接:https://mp.weixin.qq.com/s/L3o2i3WTmg1ScXEYDS8YCg 在上一篇文章 [Android 实现锚点定位 ](https://mp.weixin.qq ...
- Android --- TabLayout 每一个选项卡前面加图标
上一张效果图,简单明了 直接上代码,图片自己替换 ActivityFragment.java public class ActivityFragment extends Fragment {priva ...
- Android --- TabLayout 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)
文章目录 一.前言 二.源码实例 1.选项卡所在的布局文件 `fragment_course_selection.xml` 2.选项卡所在类 `CourseSelectionFragment.java ...
最新文章
- java object转list_这份Java开发规范,让你100%受益!
- javascript中常用数组函数
- 一位软件实施工程师的自述
- MQTT-SN协议乱翻之消息格式
- XEIM 飞鸽传书数据库说明
- 【杂题总结】洛谷-3959 宝藏
- 测试管理工具实践(小组作业)
- leetcode:Happy Number
- 用计算机对医学图像做后处理,医学影像学中图像数字化的运用
- 安装virtualbox可能遇到的错误
- C++Primer 第10章lambda表达式
- DotEPUB:一键将网页转换成 EPUB 格式电纸书
- one 主格 复数 宾格_主格、宾格、名词所有格
- Maven –如何跳过单元测试
- 使用express-jwt第三方包报错TypeError: expressJWT is not a function
- [转]PHP编码规范
- appium命令版安装
- CG动画制作项目第五篇:AE中火焰效果的实现(particular的使用)
- 2023年最新版获取QQ Clientkey。
- html 背景图片自动旋转,CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
热门文章
- Mysql 构造一个触发器 audit_log
- kindeditor=4.1.5文件上传漏洞复现
- Linux一键实现ramos打造自己的livecd
- android关机动画
- C++ 多态(动态多态)
- HTML5+CSS3小实例:炫彩的聚光灯文字效果
- 输入虚拟手机服务器地址,输入服务器url地址
- go get golang.org/x/tools 失败解决
- linux 串口读写 termios说明
- 007需求分析中的重要知识点(马斯洛需求层次理论+KANO优先级筛选模型+金字塔模型)