Как добавить индикатор горизонтальной прокрутки для Android TabLayout
Я хочу добавить горизонтальную прокрутку для Android TabLayout .
TabLayout имеет несколько вкладок и его можно прокручивать. Из-за нескольких вкладок на нем некоторые из них не видны с первого взгляда. Пользователи должны прокручивать страницу, чтобы перейти к крайним правым вкладкам (которые обычно скрыты), поэтому эти вкладки не привлекают внимания пользователя.
Идея состоит в том, чтобы иметь индикатор горизонтальной прокрутки или стрелку, указывающую, что справа есть больше вкладок, чтобы пользователи могли прокручивать их, чтобы найти / использовать их.
Идея дизайна состоит в том, чтобы иметь scrollIndicator и не иметь tabIndicator. Я нашел следующее изображение от Google, которое ближе к идее.
Заранее спасибо,
Ответы
Вы можете добиться того, чего хотите, инкапсулируя макет вкладки внутри горизонтальной прокрутки, как это
<?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">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingBottom="8dp"
android:scrollbars="horizontal">
<com.google.android.material.tabs.TabLayout
android:id="@+id/tabLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
app:tabGravity="center"
app:tabIndicator="@color/white"
app:tabMode="fixed">
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 1"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 2"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 3"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 4"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 5"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 6"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 7"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 8"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 9"/>
<com.google.android.material.tabs.TabItem
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Tab 10"/>
</com.google.android.material.tabs.TabLayout>
</HorizontalScrollView>
</LinearLayout>
Это будет выглядеть так ...
Привет, вы можете добавить приложение: tabMode = "scroll"
в примере используйте его как
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMode="scroll"
app:tabGravity="fill"/>
</android.support.design.widget.AppBarLayout>