@schwiz comment pouvons-nous réinitialiser les identifiants de vue dans ce cas.Mon problème est que même après la fin de mon activité chaque fois que la vue suivante est ajoutée, l'identifiant de la vue est incrémenté.Je veux que l'identifiant de la vue soit par défaut à 1 lorsque je reviens à cette activité .
AndroidNewBee
Merci beaucoup d'avoir donné cette réponse
ourlet
ViewGroup étend View implémente ViewParent, ViewManager. plus agréable de l'appeler avec un casting à (ViewGroup)
Mercury
23
Utilisez ViewStub et spécifiez la disposition de la vue que vous souhaitez basculer. Regarder:
Si vous souhaitez masquer / afficher, vous pouvez utiliser .setVisibility (View.INVISIBLE) et .setVisibility (View.VISIBLE). Lorsque la vue est invisible, l'utilisateur ne peut pas interagir avec elle.
dennisschagt
Disons que j'ai un textView avec un onClickListener attaché. Si je le fais disparaître et que je tape dessus, l'événement se déclenchera-t-il toujours?
ahitt6345
22
C'est la meilleur façon
LinearLayout lp =newLinearLayout(this);
lp.addView(newButton(this));
lp.addView(newImageButton(this));// Now remove them
lp.removeViewAt(0);// and so on
Si vous avez une mise en page XML, il n'est pas nécessaire d'ajouter dynamiquement.
Quelle sera la différence en termes de performances? Je veux dire la différence de performance de les ajouter dynamiquement ou de les mettre dans un fichier de mise en page xml statique et de le laisser gonfler?
stdout
19
Pour ajouter une vue à une mise en page, vous pouvez utiliser la addViewméthode de la ViewGroupclasse. Par exemple,
Il existe également un certain nombre de méthodes de suppression. Consultez la documentation de ViewGroup . Un moyen simple de supprimer la vue d'une mise en page peut être comme,
layout.removeAllViews();// then you will end up having a clean fresh layout
Cela a résolu mon problème, plus que toute autre réponse. Utile si comme moi, votre arrière-plan ou certains paramètres empêchent la vue de disparaître totalement.
Virthuss
1
c'est parce que View.GONE ne supprime pas la vue de la mise en page, la rend uniquement invisible et ne prend pas d'espace pour la mise en page.
Victor
6
Bonne réponse de Sameer et Abel Terefe. Cependant, lorsque vous supprimez une vue, dans mon option, vous souhaitez supprimer une vue avec un certain identifiant. Voici comment faire cela.
1, donnez à la vue un identifiant lorsque vous la créez:
salut si vous êtes nouveau dans Android utilisez de cette façon Appliquez votre vue pour la faire disparaître est une façon, sinon, prenez la vue parente et supprimez l'enfant à partir de là ..... sinon, obtenez la mise en page parent et utilisez ceci méthode et supprimer tout enfant parentView.remove (enfant)
Réponses:
Je l'ai fait comme ça:
la source
(ViewGroup)
:)Utilisez ViewStub et spécifiez la disposition de la vue que vous souhaitez basculer. Regarder:
Disparaître:
la source
C'est la meilleur façon
Si vous avez une mise en page XML, il n'est pas nécessaire d'ajouter dynamiquement.
la source
Pour ajouter une vue à une mise en page, vous pouvez utiliser la
addView
méthode de laViewGroup
classe. Par exemple,Il existe également un certain nombre de méthodes de suppression. Consultez la documentation de ViewGroup . Un moyen simple de supprimer la vue d'une mise en page peut être comme,
la source
Pour changer la visibilité:
Pour retirer:
la source
Bonne réponse de Sameer et Abel Terefe. Cependant, lorsque vous supprimez une vue, dans mon option, vous souhaitez supprimer une vue avec un certain identifiant. Voici comment faire cela.
1, donnez à la vue un identifiant lorsque vous la créez:
2, supprimez la vue avec l'ID:
la source
vous pouvez utiliser addView ou removeView
Java:
kotlin:
la source
salut si vous êtes nouveau dans Android utilisez de cette façon Appliquez votre vue pour la faire disparaître est une façon, sinon, prenez la vue parente et supprimez l'enfant à partir de là ..... sinon, obtenez la mise en page parent et utilisez ceci méthode et supprimer tout enfant parentView.remove (enfant)
Je suggérerais d'utiliser l'approche GONE ...
la source
Je supprime la vue en utilisant la méthode de démarrage et de comptage, j'ai ajouté 3 vues dans la disposition linéaire.
view.removeViews (0, 3);
la source
Solution d'extension réutilisable Kotlin
Simplifier la suppression
Ajoutez cette extension:
Simplifier l'ajout
Voici quelques options:
la source