2011-11-02 10 views

risposta

13

Per questo avrete bisogno di un FlowLayout cui personalizzato implementazione è dato su questo link

Cortesia: Nishant Nair

http://nishantvnair.wordpress.com/2010/09/28/flowlayout-in-android/

+0

e come lo uso? basta flowLayout.addView e lo aggiunge al modo in cui ho specificato? e qual è il file xml? – piojo

+4

Mentre lavoravo con il 'FlowLayout' di Nishant, ho notato alcune cose che erano superflue quindi l'ho ottimizzato un po '. Vedi [qui] (http://adilatwork.blogspot.co.uk/2012/12/android-horizontal-flow-layout.html). Questa versione prende in considerazione anche i margini sulle viste secondarie. –

+0

Ottima soluzione, grazie! – goodm

0

NOp, :) non nel modo desiderato (non con layout lineare). Non sono sicuro, ma credo che in Java ci sia un FlowLayout che parte da sinistra e continua a spostarsi a destra quando non c'è più spazio, inizia la nuova riga. Ma in Android non esiste un layout del genere.

Tuttavia, è possibile risolvere alcuni problemi relativi a questo problema. C'è molta differenza di soluzione ma non può essere fatta con il layout lineare. Se si imposta l'orientamento in orizzontale, non si passerà mai alla nuova riga.

come @Rasel suggerito la soluzione migliore per voi è quello di utilizzare GridView e non fare nulla circa l'orientamento

+0

se estendo LinearLayout e Esegui l'override della funzione addView, c'è un modo per calcolare la larghezza delle visualizzazioni figlio? – piojo

+0

sì c'è la funzione di misura, ma suggerisco di non preoccuparmi di questo, basta usare un gridview – Lukap

+0

non reinventare una ruota :), gridview è la soluzione non lineare layout – Lukap

0

È possibile utilizzare visualizzazione a griglia come layout per raggiungere questo

1

È possibile utilizzare RelativeLayout come visualizzazione padre e inserire molti LinearLayout in esso, assegnando a ciascuno di essi un ID separato e regolando la propria posizione l'uno rispetto all'altro (nel caso specifico "sotto").

+0

Ma non si regolerà se le viste all'interno della riga superano la larghezza della riga – FtheBuilder

+0

@FtheBuilder Cosa succede se si imposta la larghezza del LinearLayout su fill_parent? – Eames

Problemi correlati