2013-03-01 14 views
6

Mam problemy z wyświetleniem GridLayout do przewijania w poziomie.Android, poziome i pionowe przewijanie dla GridLayout

Znalazłem podobne pytanie Gridlayout + ScrollView. Próbowałem tej metody, ale to nie działało.

Wycina wiele tabel (ponieważ miało wyświetlać wszystkie tabele od 1 do 20).

Tutaj jest plik xml

<?xml version="1.0" encoding="utf-8"?> 
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:padding="16dp" > 

      <android.support.v7.widget.GridLayout 
       android:id="@+id/table_mapGrid" 
       android:layout_width="250dp" 
       android:layout_height="wrap_content" /> 
     </LinearLayout> 
    </ScrollView> 

    <include layout="@layout/cell_list_loading" /> 

    <TextView 
     android:id="@+id/table_errorView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:layout_marginLeft="20dp" 
     android:text="@string/message_error_connection" 
     android:visibility="invisible" /> 

</FrameLayout> 

chcę mieć dynamiczną treść wyświetlana, zmieniając liczbę kolumn i wierszy, ewentualnie z pustymi przestrzeniami pomiędzy tabelami. To osiągnąłem, ale problemem jest, gdy szerokość GridLayout staje się większa niż jego kontenera, chciałem rozwiązać to za pomocą poziomego przewijania, ale to nie działa ...

Jakieś sugestie?

Odpowiedz

9

Dobrze znalazłem rozwiązanie

Wydaje się, że android Scrollview działa jako VerticalScrollView a jedynie, że (nazwa nie jest tak intuicyjny jak HorizontalScrollView).

więc zrobić coś przewijana pionowo i poziomo, trzeba zagnieździć (w pionie) Scrollview wewnątrz HorizontalScrollView, lub na odwrót, jak to

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 
    <HorizontalScrollView 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent"> 

      <!-- Your content here --> 

    </HorizontalScrollView> 
</ScrollView> 
+0

Czy istnieje jakikolwiek zrobić to programeticaly w android? –

+0

Tak, po prostu tworzysz tę samą treść z góry, ale programowo. mScrollView.addView (mHorizontalScrollView); mHorizontalScrollView.addView (yourContentHere); –

Powiązane problemy