2013-03-01 7 views
6

Sto avendo difficoltà ad ottenere un GridLayout per scorrere orizzontalmente.Android, orizzontale e di scorrimento verticale per GridLayout

Ho trovato una domanda simile Gridlayout + ScrollView. Ho provato questo metodo, ma non ha funzionato.

taglia fuori molti tavoli (perché doveva andare visualizzare tutte le tabelle da 1 a 20).

Ecco il file 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> 

voglio avere contenuti dinamici visualizzata, variando il numero di colonne e righe possibilmente con spazi vuoti tra le tabelle. Questo ho compiuto, ma il problema è quando la larghezza della GridLayout diventa maggiore di suo contenitore di, volevo risolvere che l'uso di scorrimento orizzontale, ma non sembra funzionare ...

Qualsiasi suggerimento?

risposta

9

Ebbene ho trovato la soluzione

Sembra che l'androide ScrollView lavora come VerticalScrollView e solo quello (il nome non è così intuitivo come HorizontalScrollView).

Quindi, per fare qualcosa di scorrimento verticale e orizzontale, è necessario nidificare un (verticale) ScrollView all'interno di un HorizontalScrollView, o viceversa, come questo

<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

c'è comunque di farlo programeticaly in Android? –

+0

Sì, basta creare lo stesso contenuto dall'alto, ma a livello di programmazione. mScrollView.addView (mHorizontalScrollView); mHorizontalScrollView.addView (yourContentHere); –

1

Il HorizontalScrollView annidato/ScrollView non vi permetterà di per scorrere entrambe le direzioni contemporaneamente. Ho avuto questo problema e ha creato un componente personalizzato per questo, ecco il link se può aiutare qualcuno:

https://gist.github.com/androidseb/9902093

Problemi correlati