2010-07-20 6 views
2

J'ai un ListView qui utilise un adaptateur personnalisé. Je veux ajouter/supprimer dynamiquement des éléments du ListView. J'ai tout essayé dans la méthode getView() dans mon adaptateur de vue. J'ai essayé de faire setVisiblity(View.GONE) sur la vue que je reviens. Et en fait il ne dessine pas la vue, mais il alloue toujours de l'espace pour la vue et c'est juste un espace noir vide.Faire une vue dans une liste invisible android

Est-il même possible de définir des éléments dans ListView invisible?

+0

Pourriez-vous montrer comment vous avez défini l'élément sur GONE? –

+0

Il ne doit pas allouer l'espace dans ListView si vous définissez la vue de retour sur GONE. – Pentium10

+0

Je suis d'accord qu'il ne devrait pas allouer de l'espace, mais il le fait ... – BladeCoder

Répondre

5

Si vous souhaitez supprimer des éléments du ListView, je modifierais les valeurs renvoyées par le ListAdapter associé plutôt que d'essayer de manipuler les vues.

+0

Oui, au lieu de jouer avec la visibilité, il suffit de les supprimer entièrement. – st0le

+0

J'ai fini par créer 2 arrayLists et simplement faire la navette entre mes articles (une liste complète et une liste affichée) – Falmarri

1

Vous devez appeler setVisiblity (View.GONE) sur la vue renvoyée et toutes les vues qu'elle contient. Si vous réutilisez la vue de conversion transmise, vous devez vous rappeler d'appeler setVisiblity (View.VISIBLE) sur toutes les vues que vous voulez afficher.

Si vous avez beaucoup de vues invisibles, vous devrez peut-être régler la hauteur du séparateur sur 0 et ajouter votre propre diviseur aux vues renvoyées. Sinon, les vues "invisibles" auront chacune un diviseur visible et produiront une ligne grise visible entre les vues visibles.

Questions connexes