Quelle est la différence entre invisible
et gone
pour le statut de visibilité de la vue?
INVISIBLE:
Cette vue est invisible, mais elle prend toujours de la place pour la mise en page.
DISPARU:
Cette vue est invisible et ne prend aucun espace pour la mise en page.
De Documentation vous pouvez dire que
View.GONE Cette vue est invisible et ne nécessite aucun espace pour la mise en page.
View.INVISIBLE Cette vue est invisible, mais elle prend toujours de la place pour la mise en page.
Permet de clarifier l'idée avec quelques images.
Supposons que vous avez trois boutons, comme ci-dessous
Maintenant, si vous définissez la visibilité du bouton 2 comme invisible (View.INVISIBLE
), la sortie sera alors
Et lorsque vous définissez la visibilité du bouton deux comme caduque (View.GONE
), la sortie est alors
J'espère que cela effacera vos doutes.
Pour ListView ou GridView, il existe une autre différence lorsque la visibilité initialement définie sur
INVISIBLE:
La fonction getView () de l'adaptateur appelée
DISPARU:
La fonction getView () de l'adaptateur n'a pas appelé, empêchant ainsi le chargement des vues, lorsque cela est inutile.
INVISIBLE:
Il faut dessiner la vue et cela prend du temps.
DISPARU:
La vue ne doit pas être dessinée.
J'aimerais ajouter à droite et aux réponses correctes que si vous initialisez une vue avec une visibilité avec le nom View.GONE
, celle-ci n'aurait peut-être pas été initialisée et vous obtiendrez des erreurs aléatoires.
Par exemple, si vous initialisez une mise en page avec le nom View.GONE
et que vous essayez ensuite de démarrer une animation, mon expérience fonctionne de manière aléatoire. Parfois oui, parfois non.
Ainsi, avant de manipuler (redimensionner, déplacer, peu importe) une vue, vous devez l’initialiser sous le nom View.VISIBLE
ou View.INVISIBLE
pour la restituer (la dessiner) à l’écran, puis la gérer.
View.INVISIBLE -> La vue est invisible mais elle occupera de l'espace dans la présentation
View.GONE -> La vue n'est pas visible et elle n'occupera aucun espace dans la mise en page.
lorsque vous le faites. Chaque fois que vous compilez un programme, le composant est initialisé, ce qui signifie que vous supprimez le composant de la mise en page. Lorsque vous le rendez invisible, il prend le même espace dans la mise en page, mais chaque fois que vous n'avez pas besoin de l'initialiser. .
si vous définissez Visibility = Gone, vous devez initialiser le composant..like
par exemple Button _mButton = new Button (this);
_mButton = (Button) findViewByid (R.id.mButton);
il faudra donc plus de temps que Visibility = invisible.