目录

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相关推荐

  1. Android TabLayout(选项卡布局)简单用法实例分析

    本文实例讲述了Android TabLayout(选项卡布局)简单用法.分享给大家供大家参考,具体如下: 我们在应用viewpager的时候,经常会使用TabPageIndicator来与其配合.达到 ...

  2. Android TabLayout定制CustomView与ViewPager交互双向联动

     Android TabLayout定制CustomView与ViewPager交互双向联动 我之前写了一些关于Android Material Design TabLayout的文章, (1)& ...

  3. Android TabLayout和ViewPager

    In this tutorial we'll be implementing a ViewPager under the TabLayout that we'd already implemented ...

  4. AppBarLayout中的Android TabLayout

    In this tutorial, we'll discuss and implement Android TabLayout in our android application. Also we' ...

  5. Android TabLayout 宽度无法充满屏幕

    Android TabLayout 宽度无法充满屏幕 我们在使用TabLayout的时候,很多时候都需要宽度充满屏幕,并且平分屏幕.类似于如下的效果: 但很多时候我们在使用了如下代码的时候发现TabL ...

  6. Android TabLayout选项卡点击选中Ripple水波纹

    Android TabLayout选项卡点击时候选中的Ripple水波纹 如果要实现自定义的TabLayout选项卡被点击选中时候的水波纹效果,要从xml属性定义中的: app:tabBackgrou ...

  7. Android TabLayout总结

    文章目录 Android TabLayout总结 基本使用 添加图标.隐藏下划线 自定义下划线.添加分割线 设置角标 圆角样式 自定义View+Lottile 代码下载 Android TabLayo ...

  8. Android tabLayout+recyclerView实现锚点定位

    原文链接:https://mp.weixin.qq.com/s/L3o2i3WTmg1ScXEYDS8YCg 在上一篇文章 [Android 实现锚点定位 ](https://mp.weixin.qq ...

  9. Android --- TabLayout 每一个选项卡前面加图标

    上一张效果图,简单明了 直接上代码,图片自己替换 ActivityFragment.java public class ActivityFragment extends Fragment {priva ...

  10. Android --- TabLayout 切换时,改变选项卡下字体的状态(大小、加粗、默认被选中第一个)

    文章目录 一.前言 二.源码实例 1.选项卡所在的布局文件 `fragment_course_selection.xml` 2.选项卡所在类 `CourseSelectionFragment.java ...

最新文章

  1. java object转list_这份Java开发规范,让你100%受益!
  2. javascript中常用数组函数
  3. 一位软件实施工程师的自述
  4. MQTT-SN协议乱翻之消息格式
  5. XEIM 飞鸽传书数据库说明
  6. 【杂题总结】洛谷-3959 宝藏
  7. 测试管理工具实践(小组作业)
  8. leetcode:Happy Number
  9. 用计算机对医学图像做后处理,医学影像学中图像数字化的运用
  10. 安装virtualbox可能遇到的错误
  11. C++Primer 第10章lambda表达式
  12. DotEPUB:一键将网页转换成 EPUB 格式电纸书
  13. one 主格 复数 宾格_主格、宾格、名词所有格
  14. Maven –如何跳过单元测试
  15. 使用express-jwt第三方包报错TypeError: expressJWT is not a function
  16. [转]PHP编码规范
  17. appium命令版安装
  18. CG动画制作项目第五篇:AE中火焰效果的实现(particular的使用)
  19. 2023年最新版获取QQ Clientkey。
  20. html 背景图片自动旋转,CSS3 菱形拼图实现只旋转div 背景图片不旋转功能

热门文章

  1. Mysql 构造一个触发器 audit_log
  2. kindeditor=4.1.5文件上传漏洞复现
  3. Linux一键实现ramos打造自己的livecd
  4. android关机动画
  5. C++ 多态(动态多态)
  6. HTML5+CSS3小实例:炫彩的聚光灯文字效果
  7. 输入虚拟手机服务器地址,输入服务器url地址
  8. go get golang.org/x/tools 失败解决
  9. linux 串口读写 termios说明
  10. 007需求分析中的重要知识点(马斯洛需求层次理论+KANO优先级筛选模型+金字塔模型)