2011-11-02 18 views

Odpowiedz

13

Do tego trzeba będzie FlowLayout którego zwyczaj realizacja jest podana na ten link

Dzięki uprzejmości Nishant Nair

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

+0

i jak go używać? po prostu flowLayout.addView i dodaje go w sposób określony przeze mnie? i do czego służy plik xml? – piojo

+4

Podczas pracy z 'FlowLayout' Nishanta zauważyłem pewne rzeczy, które były zbyteczne, więc trochę go poprawiłem. Zobacz [tutaj] (http://adilatwork.blogspot.co.uk/2012/12/android-horizontal-flow-layout.html). Ta wersja uwzględnia również marginesy w widokach podrzędnych. –

+0

Świetne rozwiązanie, dzięki! – goodm

0

NOp, :) nie w sposób, w jaki chcesz (nie z układem liniowym). Nie jestem pewien, ale myślę, że w java był FlowLayout, który zaczyna się od lewej i idź w prawo, gdy nie ma miejsca, zaczyna się nowy wiersz. Ale w Androidzie nie ma takiego układu.

Ale możesz zrobić kilka obejść tego problemu. Istnieje wiele różnych rozwiązań, ale nie można tego zrobić za pomocą układu liniowego. Jeśli ustawisz orientację poziomą w nigdy nie przejdziesz do nowej linii.

jak @Rasel zaproponował najlepszym rozwiązaniem dla Ciebie jest użycie gridview i nic nie robić o orientacji

+0

, jeśli rozszerzam LinearLayout i zastępuję funkcję addView, czy istnieje sposób na obliczenie szerokości widoków podrzędnych? – piojo

+0

Tak, istnieje funkcja pomiaru, ale proponuję nie przejmować się tym, wystarczy użyć gridview – Lukap

+0

nie wymyślać koła :), gridview jest rozwiązaniem, a nie układem liniowym – Lukap

0

Można użyć widoku siatki jak układ, aby osiągnąć ten

1

Możesz użyć RelativeLayout jako widoku rodzica i umieścić w nim wiele liniowych danych, nadając każdemu z nich osobny identyfikator i dostosowując ich położenie względem siebie (w twoim przypadku "poniżej").

+0

Ale to się nie zmieni, jeśli widoki wewnątrz wiersza przekraczają szerokość wiersza. – FtheBuilder

+0

@FtheBuilder Co się stanie, jeśli ustawisz LinearLayout na fill_parent? – Eames

Powiązane problemy