Question

Dans mon ListActivity, j'ai besoin d'en-tête et des vues de bas de page (en haut et en bas de la liste) à utiliser comme page précédente et boutons page suivante sur ma liste, respectivement, parce que je veux afficher seulement 20 éléments à la fois .

Je mis mon point de vue d'en-tête et pied en faisant:

getListView().addHeaderView(myHeaderView);
getListView().addFooterView(myFooterView);
setListAdapter(adapter);

Cela fonctionne très bien, mais je dois supprimer et ajouter dynamiquement ces vues d'en-tête et pied de page, parce que certaines pages de ma liste ne peut pas avoir un bouton de page suivante ou un bouton de la page précédente.

Le problème est, je ne peux pas appeler addHeaderView ou addFooterView après avoir appelé setListAdapter.

Y at-il un moyen de contourner cela?

Était-ce utile?

La solution

Pourquoi ne pas l'effondrement juste en-tête et pied de page à zéro hauteur ou gris sur les boutons (encore mieux).

Et la meilleure expérience utilisateur, à mon avis, serait de charger dynamiquement plusieurs éléments en cas de besoin (par exemple sur parchemin), comme le haut-app Gmail fait.

Autres conseils

Oui, c'est un bug ou une surveillance dans le composant ListView. Vous pouvez contourner ce problème en écrivant votre propre WrapperListAdapter qui gère l'ajout et la suppression d'éléments de liste fixes, mais je peux vous dire que ce n'est pas tout à fait facile de le faire.

Vous pouvez également - et beaucoup plus facile - vous pouvez ajouter un composant fixe au-dessus ou en dessous du ListView où vous placez les boutons suivant et précédent

.

Que diriez-vous de réinitialiser l'adaptateur à chaque fois que vous avez besoin d'ajouter vue d'en-tête, comme la façon suivante:

ListView.FixedViewInfo headerInfo = getListView().new FixedViewInfo();
headerInfo.isSelectable=false ;
headerInfo.view = feedInfoView;
headerInfos.add(headerInfo);
headerViewListAdapter = new HeaderViewListAdapter(headerInfos,null,adapter);
getListView().setAdapter(headerViewListAdapter);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top