So fügen Sie eine horizontale Bildlaufanzeige für Android TabLayout hinzu

Nov 21 2020

Ich möchte eine horizontale Bildlaufansicht für ein Android TabLayout hinzufügen .

Das TabLayout enthält mehrere Registerkarten und kann gescrollt werden. Aufgrund mehrerer Registerkarten sind einige davon auf den ersten Blick nicht sichtbar. Die Benutzer müssen scrollen, um zu den Registerkarten ganz rechts zu gelangen (die normalerweise ausgeblendet sind), sodass diese Registerkarten die Aufmerksamkeit des Benutzers nicht auf sich ziehen.

Der Gedanke ist, eine horizontale Bildlaufanzeige oder einen Pfeil zu haben, der anzeigt, dass sich rechts mehr Registerkarten befinden, damit die Benutzer scrollen können, um sie zu finden / zu verwenden.

Die Entwurfsidee besteht darin, einen scrollIndicator und keinen tabIndicator zu haben. Ich habe das folgende Bild von Google gefunden, das der Idee näher kommt.

Danke im Voraus,

Antworten

6 AgentP Nov 26 2020 at 20:06

Sie können das erreichen, was Sie möchten, indem Sie das Registerkartenlayout in eine horizontale Bildlaufansicht wie diese einkapseln

<?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>

Es wird so aussehen ......

Kuldeep Dec 03 2020 at 06:25

Hallo du kannst App hinzufügen : tabMode = "scroll"

in einem Beispiel verwenden Sie es als

<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>