2016-02-06 15 views
6

Sto provando a creare un'interfaccia utente che coinvolge RecyclerView o GridView, in cui voglio impostare automaticamente il numero di colonne in base al numero e alla larghezza degli elementi che sto popolando in modo dinamico.LayoutManager per RecyclerView per impostare automaticamente il numero di colonne in base alla larghezza degli articoli

Ecco l'immagine di quello che ho raggiunto finora ...

my current UI

Ecco l'immagine di quello che sto cercando di realizzare ...

my target UI

Il mio articolo layout xml

<TextView 
     android:layout_width="wrap_content" 
     android:layout_height="40dp" 
     android:background="@drawable/hollow_white_background" 
     android:id="@+id/foodItemName" 
     android:text="PIZZA" 
     android:gravity="center" 
     android:textColor="@color/colorGray300" 
     android:textStyle="bold" 
     android:textSize="15sp" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" /> 

P aiuto!

+0

Si prega di fornire il layout elemento XML e il codice è stato utilizzato per la configurazione GridLayoutManager. – thetonrifles

+0

Guardando all'interfaccia utente di destinazione, penso che non si possa ottenere usando RecyclerView con un gestore di layout standard. Hai bisogno di una sorta di FlowLayout. Sono disponibili molte implementazioni. Ad esempio [qui] (https://github.com/thetonrifles/android-tags-selector) è un mio repository che include qualcosa di simile. – thetonrifles

+0

Forse un FlowLayout è quello che stai cercando. Vedere https://github.com/ApmeM/android-flowlayout o https://github.com/blazsolar/FlowLayout. –

risposta

0

nel file XML, aggiungere Android: numColonne = "auto_fit" e Android: stretchmode = "columnWidth" attributi per il GridView. Il primo attributo decide quante colonne ci dovrebbero essere in base alla dimensione dello schermo, e il secondo attributo decide cosa fare con lo spazio extra rimasto, che in questo caso aumenta le larghezze della colonna.

+1

l'ho già fatto, ancora mostra solo due colonne con i miei oggetti allineati a sinistra, non gestisce lo spazio extra. Quello che voglio è quando la larghezza del mio oggetto è piccola, quindi dovrebbe mostrare come 3 colonne o più e quando la larghezza è grande, allora dovrebbe mostrare automaticamente 1 o 2 colonne! –

+0

@AyushMaurya bene, quegli attributi dovrebbero fare esattamente quello che ti serve. Puoi aggiornare la domanda con il tuo attuale file xml? –

+0

questo è il xml usavo e la domanda è sempre la stessa. –

0

Provare a utilizzare StaggeredGridLayoutManager come LayoutManager di RecyclerView con fissa width di item_layout.xml

+0

StaggeredGridLayoutManager influenza le righe, non le colonne! –

Problemi correlati