Jak dodać poziomy wskaźnik przewijania dla TabLayout systemu Android
Chcę dodać widok przewijania w poziomie dla TabLayout systemu Android .
TabLayout ma wiele kart i można go przewijać. Ze względu na wiele zakładek, niektóre z nich nie są widoczne na pierwszy rzut oka. Użytkownicy muszą przewijać, aby dostać się do zakładek po prawej stronie (które zwykle są ukryte), więc te zakładki nie przyciągają uwagi użytkownika.
Chodzi o to, aby mieć poziomy wskaźnik przewijania lub strzałkę wskazującą, że po prawej stronie znajduje się więcej kart, aby użytkownicy mogli przewijać je w celu ich znalezienia / użycia.
Pomysł na projekt polega na tym, aby mieć scrollIndicator, a nie tabIndicator. Znalazłem następujący obraz z Google, który jest bliższy temu pomysłowi.

Z góry dziękuję,
Odpowiedzi
Możesz osiągnąć to, co chcesz, hermetyzując układ kart w poziomym widoku przewijania, takim jak ten
<?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>
Będzie to wyglądało tak ......

Cześć, możesz dodać aplikację: tabMode = "scroll"
w przykładzie użyj go jako
<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>