25

Ich beziehe mich auf eine große demo here in Bezug auf Material Design. Es hat Registerkarten, aber wenn ich zu viele hinzufügen, werden die Tab-Elemente zerquetscht (siehe Screenshot). Wie kann ich es horizontal scrollen lassen?Wie aktiviert man das horizontale Scrollen im Tab wie Google Play?

enter image description here

ich unten glauben, ist das Layout ich die Änderung vornehmen sollte, aber ich gekämmt die Dokumentation und kann nicht scheinen, um es zu bekommen, pls helfen!

<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/main_content" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.AppBarLayout 
     android:id="@+id/appbar" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> 

     <android.support.v7.widget.Toolbar 
      android:id="@+id/toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="?attr/actionBarSize" 
      android:background="?attr/colorPrimary" 
      app:popupTheme="@style/ThemeOverlay.AppCompat.Light" 
      app:layout_scrollFlags="scroll|enterAlways" /> 

     <android.support.design.widget.TabLayout 
      android:id="@+id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" /> 

    </android.support.design.widget.AppBarLayout> 

    <android.support.v4.view.ViewPager 
     android:id="@+id/viewpager" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     app:layout_behavior="@string/appbar_scrolling_view_behavior" /> 

    <android.support.design.widget.FloatingActionButton 
     android:id="@+id/fab" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="end|bottom" 
     android:layout_margin="@dimen/fab_margin" 
     android:src="@drawable/ic_done" /> 

</android.support.design.widget.CoordinatorLayout> 
+0

Versuchen Sie Ihre 'TabLayout' setzen in' HorizontalScrollingView'? –

+0

hey @ N1to das hat funktioniert! Pls gehen als Antwort und ich werde akzeptieren. Ich habe gerade 'TabLayout' mit' 'eingepackt. Die einzige Sache ist, wenn ich zu einem Tab auf dem Bildschirm wische, es nicht auf diesen Tab konzentriert. – TruMan1

+3

Tu das nicht, TabLayout selbst ist schon ein HorizontalScrollview. Sie sollten das TabLayout in MODE_SCROLLABLE setzen (es ist in den Dokumenten) – BladeCoder

Antwort

82

TabLayout hat eine Methode setTabMode(), die entweder MODE_FIXED (Standard) oder MODE_SCROLLABLE sein kann, was Sie brauchen.

Sie können dies auch in XML mit app:tabMode="scrollable" definieren.

+0

beziehen Sie sich auf dieses Blog für eine Demo http://www.ekiras.com/2015/12/how-to-implement-material-design-tab-layout-in-android.html –

+0

In meinem Fall verwende ich TabLayout in links . Kann man vertikal scrollen? –

0

SlidingTabLayout und SlidingTabStrip Klassen ist das, was suchen Sie Sie müssen diese Klassen von Google-Entwickler-Website kopieren, fügen Registerkarte Layout in XML-Schiebe-, und in Satz viewpager für Schiebe Registerkarte Layout in Java. Ich hoffe, es wird dir helfen.

+0

Ich finde Beispiel, wie man das von Grund auf neu macht, ist das kein natives Steuerelement? – TruMan1

+0

Soweit ich weiß, ist es nicht in der Bibliothek enthalten, aber es gibt einen Quellcode dieser Steuerelemente. https://developer.android.com/samples/SlidingTabsBasic/index.html Sie müssen sie in Ihr Projekt kopieren. –

2

Sie können dieses Add app:tabMode="scrollable" zu Ihrem android.support.design.widget.TabLayout

+2

Was ist der Unterschied zwischen Ihrer und akzeptierten Antwort? –