Lorsqu'une vue a disparu, cela signifie qu'elle ne prend pas de place dans la mise en page. Lorsqu'il est invisible, il prendra la place nécessaire dans une mise en page mais vous ne le voyez tout simplement pas.
DroidBender
Réponses:
709
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.
L'idée doit-elle être clarifiée? Cela me semble assez clair uniquement à partir de l'explication.
John Dvorak
16
@JanDvorak :) Génial! Je n'ai pas de réponse à votre question. Si vous pensez que cela était très clair pour tous les utilisateurs, la réponse acceptée devrait être un commentaire et un lien vers le site de documentation. Ai-je raison?
Pankaj Kumar
et si je l'utilise pour edittext. est-il possible d'obtenir la valeur d'edittext?
Ashish
32
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
La vue n'est pas dessinée, elle est mesurée et disposée.
cyroxis
@cyroxis peut-être qu'il / elle veut dire méthode ondraw!
David
7
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.GONEet à 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.VISIBLEou la View.INVISIBLErendre (la dessiner) à l'écran, puis la gérer.
Oui, vous avez raison, cela ne fonctionne que parfois lorsque la vue estGONE
Suraj Bahadur
4
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.
Réponses:
INVISIBLE:
DISPARU:
la source
display:none
&visibility:hidden
HTML / CSS :-)De la documentation, vous pouvez dire que
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 seraEt lorsque vous définissez la visibilité du bouton deux comme disparu (
View.GONE
), la sortie seraJ'espère que cela dissipera vos doutes.
la source
Pour ListView ou GridView, il existe une autre différence, lorsque la visibilité initialement définie sur
INVISIBLE:
DISPARU:
la source
INVISIBLE:
La vue doit être dessinée et cela prend du temps.
GONE:
La vue n'a pas besoin d'être dessinée.
la source
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 laView.INVISIBLE
rendre (la dessiner) à l'écran, puis la gérer.la source
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.
la source
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
la source
View.GONE = La vue ne s'affichera pas et le reste des vues ne tiendra pas compte de son existence
View.INVISIBLE = La vue ne s'affichera pas, mais elle occupera l'espace qui lui est affecté dans la mise en page
la source