Quelle est la différence entre invisible
et gone
pour le statut de visibilité Afficher?
Quelle est la différence entre invisible
et gone
pour le statut de visibilité Afficher?
Réponses:
INVISIBLE:
Cette vue est invisible, mais elle prend toujours de la place à des fins de mise en page.
DISPARU:
Cette vue est invisible et ne prend pas de place à des fins de mise en page.
display:none
& visibility:hidden
HTML / CSS :-)
De la documentation, vous pouvez dire que
View.GONE Cette vue est invisible et ne prend pas de place à des fins de mise en page.
View.INVISIBLE Cette vue est invisible, mais elle prend toujours de l'espace à des fins de mise en page.
Permet de clarifier l'idée avec quelques photos.
Supposons que vous ayez trois boutons, comme ci-dessous
Maintenant, si vous définissez la visibilité du bouton deux comme invisible ( View.INVISIBLE
), la sortie sera
Et lorsque vous définissez la visibilité du bouton deux comme disparu ( View.GONE
), la sortie sera
J'espère que cela dissipera vos doutes.
Pour ListView ou GridView, il existe une autre différence, lorsque la visibilité initialement définie sur
INVISIBLE:
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 lorsqu'il n'est pas nécessaire
J'aimerais ajouter aux bonnes réponses, que si vous initialisez une vue avec la visibilité as View.GONE
, la vue pourrait ne pas avoir été initialisée et vous obtiendrez des erreurs aléatoires.
Par exemple, si vous initialisez une mise en page au fur View.GONE
et à mesure que vous essayez de démarrer une animation, d'après mon expérience, mon animation fonctionne aléatoirement plusieurs fois. Parfois oui, parfois non.
Donc, avant de manipuler (redimensionner, déplacer, peu importe) une vue, vous devez l'initier en tant que View.VISIBLE
ou la View.INVISIBLE
rendre (la dessiner) à l'écran, puis la gérer.
GONE
lorsque vous le faites disparaître à chaque fois que vous compilez le programme, le composant est initialisé, ce qui signifie que vous supprimez le composant de la mise en page et lorsque vous le rendez invisible, il prendra 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);
cela prendra donc plus de temps que Visibilité = invisible.
View.INVISIBLE -> La vue est invisible mais elle occupera un peu d'espace dans la mise en page
View.GONE -> La vue n'est pas visible et elle n'occupera aucun espace dans la mise en page