web-dev-qa-db-fra.com

Comment faire défiler ma disposition horizontalement et verticalement?

J'utilise un TableLayout. J'ai besoin d'avoir un défilement horizontal et vertical pour cette mise en page. Par défaut, je peux obtenir le défilement vertical dans la vue mais le défilement horizontal ne fonctionne pas.

J'utilise Android SDK 1.5 r3. J'ai déjà essayé Android:scrollbars="horizontal".

J'ai lu sur certains forums que dans la mise à jour de cupcake, le défilement horizontal est possible.

Comment faire défiler ma mise en page dans les deux sens?

58
mudit

J'ai pu trouver un moyen simple de réaliser les deux comportements de défilement.

Voici le xml pour cela:

<ScrollView xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:layout_width="fill_parent" Android:layout_height="fill_parent"
    Android:scrollbars="vertical">

    <HorizontalScrollView 
        Android:layout_width="320px" Android:layout_height="fill_parent">

        <TableLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
            Android:id="@+id/linlay" Android:layout_width="320px"
            Android:layout_height="fill_parent" Android:stretchColumns="1"
            Android:background="#000000"/>

    </HorizontalScrollView>

</ScrollView>
132
mudit

c'est trop tard mais j'espère que votre problème sera résolu rapidement avec ce code. rien à faire de plus, il suffit de mettre votre code sous scrollview.

<HorizontalScrollView
        Android:id="@+id/scrollView"
        Android:layout_width="wrap_content"
        Android:layout_height="match_parent">

      <ScrollView
            Android:layout_width="match_parent"
            Android:layout_height="wrap_content">
            //xml code
      </ScrollView>
</HorizontalScrollView>
5
Ashish Tikarye

Dans cet article Scrollview vertical et horizontal dans Android ils parlent d'une solution possible, citant:

Matt Clark a construit une vue personnalisée basée sur la source Android, et cela semble fonctionner parfaitement: http://blog.gorges.us/2010/06/06/Android-two -dimensional-scrollview

Attention, la classe de cette page a un bug qui calcule la largeur horizontale de la vue. Un correctif de Manuel Hilty est dans les commentaires:

Solution: remplacez l'instruction à la ligne 808 par ce qui suit:

final int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.leftMargin + lp.rightMargin, MeasureSpec.UNSPECIFIED);
1
neteinstein

Utilisez ceci:

Android:scrollbarAlwaysDrawHorizontalTrack="true"

Exemple:

<Gallery Android:id="@+id/gallery"
    Android:layout_width="fill_parent"
    Android:layout_height="wrap_content"
    Android:scrollbarAlwaysDrawHorizontalTrack="true" />
0
Patel Ekta