25

Mi riferisco ad un ottimo demo here riguardante la progettazione del materiale. Ha le schede, ma quando aggiungo troppe voci della scheda vengono schiacciate (vedi screenshot). Come posso farlo scorrere in orizzontale?Come abilitare lo scorrimento orizzontale in una scheda come Google Play?

enter image description here

Credo che al di sotto è il layout che dovrei fare il cambiamento, ma ho pettinati la documentazione e non riesco a farlo, pls aiutare!

<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

Hai provato mettere il 'TabLayout' in' HorizontalScrollingView'? –

+0

hey @ N1to quello ha funzionato! Pls se ne va come risposta e io accetterò. Ho appena completato il 'TabLayout' con' '. L'unica cosa è quando passo il dito verso una scheda fuori dallo schermo, non si concentra su quella scheda. – TruMan1

+3

Non farlo, TabLayout stesso è già un HorizontalScrollview. Dovresti impostare TabLayout in MODE_SCROLLABLE (è nei documenti) – BladeCoder

risposta

82

TabLayout ha un metodo setTabMode() che può essere MODE_FIXED (predefinito) o MODE_SCROLLABLE che è quello che ti serve.

È inoltre possibile definire questo in XML con app:tabMode="scrollable".

+0

fare riferimento a questo blog per una demo http://www.ekiras.com/2015/12/how-to-implement-material-design-tab-layout-in-android.html –

+0

Nel mio caso uso TabLayout a sinistra . È possibile scorrere in verticale? –

0

classi SlidingTabLayout e SlidingTabStrip è quello che stai cercando È necessario copiare queste classi da sviluppatori di Google Site, aggiungere scorrevole layout di scheda in XML, e in set viewpager per lo scorrimento layout di scheda in java. Spero che ti possa aiutare.

+0

Sto trovando un esempio di come farlo da zero, non si tratta di un controllo nativo? – TruMan1

+0

Per quanto ne so non è incluso nella libreria, ma c'è un codice sorgente di questi controlli. https://developer.android.com/samples/SlidingTabsBasic/index.html È necessario copiarli nel progetto. –

2

È possibile aggiungere questo app:tabMode="scrollable" al android.support.design.widget.TabLayout

+2

Qual è la differenza tra la tua risposta e quella accettata? –

Problemi correlati