2 votes

Quelle est la meilleure façon de placer une ListView dans une HorizontalScrollView ?

J'essaie de créer une application de calendrier et je voudrais lister tous les événements d'une journée dans une ListView et faire défiler les jours horizontalement. Lorsque je fais défiler vers la droite, la ListView doit redessiner les événements du lendemain. J'ai tous mes événements dans une base de données sqllite.

Voici à quoi ressemble mon XML :

<?xml version="1.0" encoding="UTF-8"?>       

<HorizontalScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/scrollview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true" 
    android:scrollbars="none">

    <LinearLayout
        android:id="@+id/layout"
        android:layout_width="wrap_content"
        android:layout_height="fill_parent"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="Medium Text"
            android:gravity="center"
            android:textAppearance="?android:attr/textAppearanceMedium" />

        <ListView android:id="@+id/list"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent" />

    </LinearLayout>

</HorizontalScrollView>

Comment puis-je alimenter le ListView et faire en sorte qu'il reçoive les nouvelles données à chaque fois que je le fais défiler ?

0voto

Nickolaus Points 1362

Mauvaise approche, une ListView ne peut pas être imbriquée dans une ScrollView. Utilisez un ViewPager pour afficher les jours.

0voto

rnorman3 Points 49

J'ai utilisé une ListView à l'intérieur d'une HorizontalScrollView dans les API 15 et 18. Les deux vues semblent reconnaître leur geste requis, donc cela fonctionne. J'ai cependant remarqué que la largeur de la ListView n'est égale qu'à celle de la première ligne de la liste. Si les rangées suivantes sont plus larges, le "surplus" (la longueur excédant la rangée 1) ne sera pas visible, mais vous pourrez alors faire défiler la liste pour voir le texte restant, etc... Je n'ai pas remarqué d'autres effets indésirables.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X