31 votes

Android addHeaderView disparaît quand aucun élément dans ListView

J'utilise addHeaderView pour ajouter un élément de vue en haut d'un ListView. J'ai également un TextView pour afficher un message disant qu'il n'y a aucun élément dans la liste.

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

<TextView
    android:id="@android:id/empty"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:text="@string/list_empty"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceMedium" />



final ListView listView = getListView();
    final View view = getLayoutInflater().inflate(R.layout.list_item_add,
            listView, false);
    listView.addHeaderView(view, null, true);
 

Lorsqu'il y a des éléments dans ListView, l'en-tête s'affiche, mais si je supprime tous les éléments de la liste (à l'exception de la vue d'en-tête), la vue d'en-tête disparaît.

J'aimerais que la vue d'en-tête soit visible dans la vue de liste, qu'il y ait des éléments dans la liste ou non.

Merci,

36voto

superfell Points 10377

Supprimez la vue @android:id/empty de votre mise en page ou remplacez / sous-classe votre adaptateur pour renvoyer false de isEmpty()

5voto

delformo Points 613

D'après mon expérience (SDK version 10):

Remplacer isEmpty () dans l'adaptateur le fait fonctionner.

Ensuite, il est facultatif de supprimer la vue @android: id / vide.

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