Liste des activités avec en-tête, pied de page et vide tous visibles
Je voudrais avoir la liste dans une ListActivity être affiché avec l'en-tête et pied de page visible tout le temps, même si les données de la liste est vide.
Une liste vide provoque l'affichage vide de comparaître et de l'en-tête et pied de page à disparaître. Cependant, ma tête a de filtrage de l'INTERFACE utilisateur et doit donc toujours être visible.
La seule façon que je peux y arriver en ce moment est si je prends l'en-tête et pied de page de la liste et de les mettre en œuvre, des vues statiques en dehors de l'activité mise en page. Cependant ceux-ci sont toujours visibles et seules les données des parchemins.
Je préférerais, pour à la fois d'être juste sur le haut et le bas de la liste déroulante. Enveloppant le tout dans un défilement de l'affichage ne fonctionne pas depuis lors, il y a deux imbriqués de défilement points de vue( la vue de la liste de l'extérieur et de l'emballage).
Est-il un moyen de le faire bien, à part un hack comme l'ajout d'un faux document?
GONE
et de définir votre ListView
visible. Voir cette réponse: stackoverflow.com/questions/4798387/...OriginalL'auteur Manfred Moser | 2011-09-16
Vous devez vous connecter pour publier un commentaire.
Faire de votre vue vide inclure votre en-tête.
c'est à dire
Non, vous ajoutez l'en-tête avec addHeaderView(R. layout.your_header); Et vous aussi ajouter l'en-tête en l'identifiant et le vide. De cette façon, il défilement lorsque vous avez des articles, et est toujours visible lorsque vous n'en avez pas. Faire usage de la <include/> et <fusionner/> balises pour arrêter la duplication de code XML
oh.. je reçois le truc maintenant. C'est une bonne idée.
OriginalL'auteur Blundell
Cette réponse est un peu tardive, mais vous pouvez simplement les remplacer BaseAdapter.isEmpty() renvoie false.
OriginalL'auteur Jim
Vous pouvez utiliser mon
MergeAdapter
pour cela. Ajouter l'en-tête d'afficher, d'ajouter l'adaptateur de données, et ajouter le pied de page vue. Ils vont tous les faire défiler à l'unisson, et l'en-tête et pied de page persiste même si l'adaptateur dans le milieu n'a pas de ligne.Moser: Ce qui est couvert dans le
MergeAdapter
de la documentation sur la page, j'ai lié ci-dessus. Par défaut,MergeAdapter
avec votre en-tête+pied de page vues ne sera pas le vide de la vue, même si la carte est vide. Si vous voulez modifier ce comportement, vous devez remplacerisEmpty()
dans une sous-classe.Merci Mark - c'est peut-être un peu lourd pour ajouter tout ce qui dans mon cas, mais je vais avoir un coup d'oeil - je peux peut-être prendre un peu de votre code et de l'utilisation d'une approche d'elle.
OriginalL'auteur CommonsWare
Ok, cette solution de contournement est un hack. Mais, sans avoir à créer un faux article.
Pour un ArrayAdapter vous pouvez ajouter une rubrique nulle... c'est à dire
Et, dans le MyAdapter getView(..) vous faites quelque chose comme:
L'ajout de la valeur null n'est pas une bonne idée. Il va se remplir de vos articles avec cache/précédente recyclé vue.
OriginalL'auteur delformo
J'ai trouvé que l'en-tête/pied de page sera toujours visible si vous n'appelez pas la ListView.setEmptyView.
Au lieu de cela, manuellement afficher/masquer votre vue vide:
OriginalL'auteur craigrs84
Je rencontre le même problème, si ListView n'a pas d'objet, vous pourriez ListView.setAdapter(new SomeAdapter(new ArrayList())); et l'en-tête est également visible.
OriginalL'auteur Mingfei
Dans mon cas j'ai eu les deux en-tête et pied de page vues.
J'ai placé mon
mEmptyView
dans le pied de vue.Tout d'abord, comme user1034295 mentionné, je surdéfini de la carte
isEmpty()
méthode:ExpandableListView de la carte
getGroupCount()
. Remplacer la méthode la plus appropriée pour votre adaptateur.En activité/fragment
mEmptyView
est un enfant dansListView
'pied de page vue.Ainsi, lorsque votre liste est 0 taille vous obtiendrez votre en-tête/pied de page vues resté +
mEmptyView
deviennent visibles.OriginalL'auteur azizbekian
Vous pouvez mettre la listView et le layout vide ensemble dans un FrameLayout, et de mettre
le layout vide marge de la taille de l'en-tête, puis, vous pouvez modifier la visibilité de l'affichage vide lorsqu'un élément est ajouté à la liste.
la mise en page sera semblable à ceci:
OriginalL'auteur Yovboy