Android TabLayout選項卡使用教程

TabLayout
TabLayout 在開發(fā)中一般作為選項卡使用,常與 ViewPager2 和Fragment 結合起來使用。
常用屬性:
app:tabBackground 設置 TabLayout 的背景色,改變整個TabLayout 的顏色;
app:tabTextColor 設置未被選中時文字的顏色;
app:tabSelectorColor 設置選中時文字顏色;
app:tabTextAppearance="@android:style/TextAppearance.Large" 設置 TabLayout 的文本主題,無法通過 textSize 來設置文字大小,只能通過主題來設定;
app:tabMode="scrollable"設置 TabLayout 可滑動,當 tabItem 個數(shù)較多時,一個界面無法呈現(xiàn)所有的導航標簽,此時就必須要用;
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.TabItem
android: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() {
@Override
public 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 在英文狀態(tài)下默認都是大寫,這是因為在 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.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_add"
android:text="添加"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_delete"
android:text="刪除"/>
<com.google.android.material.tabs.TabItem
android: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.TabLayout
android: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.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_add"
android:text="添加"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_delete"
android:text="刪除"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_camera"
android:text="相機"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_add"
android:text="添加"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_delete"
android:text="刪除"/>
<com.google.android.material.tabs.TabItem
android: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.TabLayout
android: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.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_add"
android:text="添加"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_delete"
android:text="刪除"/>
<com.google.android.material.tabs.TabItem
android: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.TabLayout
android: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.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_add"
android:text="添加" />
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_call"
android:text="刪除" />
<com.google.android.material.tabs.TabItem
android: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.TabLayout
android: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.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_menu_add"
android:text="add"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:icon="@android:drawable/ic_delete"
android:text="刪除"/>
<com.google.android.material.tabs.TabItem
android: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內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
android?studio實驗:?UI設計?ListView及事件響應
這篇文章主要介紹了android?studio實驗:?UI設計?ListView及事件響應,主要是ListView及其事件響應方法?彈出菜單PopupMenu及其事件響應方法,下面來看看具文章體的介紹吧2021-12-12
Android 后臺發(fā)送郵件示例 (收集應用異常信息+Demo代碼)
今天介紹個更簡單的方法,我們把異常信息收集后,通過后臺發(fā)送郵件方法,把相關異常信息發(fā)送到我們指定的郵箱里面2013-07-07
Android 滑動小圓點ViewPager的兩種設置方法詳解流程
Viewpager,視圖翻頁工具,提供了多頁面切換的效果。Android 3.0后引入的一個UI控件,位于v4包中。低版本使用需要導入v4包,現(xiàn)在我們一般不再兼容3.0及以下版本,另外使用Android studio開發(fā),默認導入v7包,v7包含了v4,所以不用導包,越來越方便了2021-11-11

