Android addHeaderView disparaît lorsque aucun élément dans ListView
Je suis en utilisant addHeaderView
pour ajouter un élément affichage vers le haut d'un ListView
. J'ai aussi un TextView
pour afficher un message disant qu'il n'y a pas d'éléments dans la liste.
Ici est la mise en page:
<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" />
Et le code Java:
final ListView listView = getListView();
final View view = getLayoutInflater().inflate(R.layout.list_item_add,
listView, false);
listView.addHeaderView(view, null, true);
Quand il y a des éléments dans la liste, puis l'en-tête est affiché mais si je supprime tous les éléments de la liste (à l'exception de la vue d'en-tête), puis la vue d'en-tête disparaît.
Je voudrais l'en-tête de la vue pour être visible dans l'affichage de la liste si il y a des éléments dans la liste ou pas.
Merci,
- Si vous ne trouvez pas d'autre solution à ce problème, vous pouvez envisager d'utiliser mon
MergeAdapter
pour remplacer votre utilisation deaddHeaderView()
, comme je suis raisonnablement certainMergeAdapter
ne souffrent pas de ce problème: github.com/commonsguy/cwac-merge - La bonne réponse est donnée ici: stackoverflow.com/questions/7449522/...
- comment avez-vous résoudre ce problème?
- Voici la solution -- > stackoverflow.com/a/34557372/542532
InformationsquelleAutor skyfoot | 2011-02-14
Vous devez vous connecter pour publier un commentaire.
Supprimer la
@android:id/empty
vue à partir de votre mise en page, ou de remplacer/sous-classe de votre carte de fausse déclaration deisEmpty()
isEmpty()
vous créez une instance de l'adaptateur et de le régler sur la Liste.De mon expérience (SDK de la version 10):
Primordial isEmpty() dans l'adaptateur permet de travailler.
Ensuite, il est facultatif pour enlever le @android:id/affichage vide.