Risposte:
INVISIBILE:
Questa vista è invisibile, ma occupa ancora spazio per scopi di layout.
ANDATO:
Questa vista è invisibile e non occupa spazio ai fini del layout.
display:none
& visibility:hidden
in HTML / CSS :-)
Dalla documentazione puoi dirlo
View.GONE Questa vista è invisibile e non occupa spazio ai fini del layout.
View.INVISIBLE Questa vista è invisibile, ma occupa ancora spazio per scopi di layout.
Consente di chiarire l'idea con alcune immagini.
Supponi di avere tre pulsanti, come di seguito
Ora se imposti la visibilità del pulsante due come invisibile ( View.INVISIBLE
), l'output sarà
E quando imposti la visibilità del pulsante due come scomparso ( View.GONE
), l'output sarà
Spero che questo chiarisca i tuoi dubbi.
Per ListView o GridView c'è un'altra differenza, quando la visibilità inizialmente è impostata su
INVISIBILE:
Chiamata la funzione getView () dell'adattatore
ANDATO:
La funzione getView () dell'adattatore non ha chiamato, impedendo così il caricamento delle viste, quando non è necessario
Vorrei aggiungere le risposte giuste e di successo, che se si inizializza una vista con visibilità come View.GONE
, la vista potrebbe non essere stata inizializzata e si otterranno alcuni errori casuali.
Ad esempio, se si inizializza un layout come View.GONE
e quindi si tenta di avviare un'animazione, dalla mia esperienza ho la mia animazione che funziona in modo casuale volte. A volte sì, a volte no.
Quindi, prima di gestire (ridimensionare, spostare, qualunque cosa) una vista, è necessario iniziarla View.VISIBLE
o View.INVISIBLE
renderla (disegnarla) sullo schermo, quindi gestirla.
GONE
quando lo rendi Andato ogni volta della compilazione del programma, il componente viene inizializzato, il che significa che stai rimuovendo il componente dal layout e quando lo rendi invisibile, il componente occuperà lo stesso spazio nel layout ma ogni volta che non devi inizializzarlo .
se si imposta Visibilità = Andato, è necessario inizializzare il componente..come
es. Button _mButton = new Button (questo);
_mButton = (Button) findViewByid (R.id.mButton);
quindi ci vorrà più tempo rispetto a Visibilità = invisibile.
View.INVISIBLE -> La vista è invisibile ma occuperà un po 'di spazio nel layout
View.GONE -> La vista non è visibile e non occuperà spazio nel layout