Android: ¿diferencia entre invisible y desaparecido?

477

¿Cuál es la diferencia entre invisibley gonepara el estado de visibilidad Ver?

Robar
fuente
26
Cuando una vista desaparece, significa que no ocupa espacio en el diseño. Cuando es invisible, ocupará el espacio necesario en un diseño, pero simplemente no lo verá.
DroidBender

Respuestas:

709

INVISIBLE:

Esta vista es invisible, pero aún ocupa espacio para fines de diseño.

IDO:

Esta vista es invisible y no ocupa espacio para el diseño.

Iñigo
fuente
113
Parece análogo a display:noney visibility:hiddenen HTML / CSS :-)
anishsane
O bien Oculto y colapsado en Wpf XAML
juliushuck
1
Si es invisible, ¿hará clic en él también está deshabilitado?
Kuldeep Yadav
1
@KuldeepYadav sí, será tanto invisible como invisible.
Steve Moretz
1
solo para futuros lectores curiosos: aún podemos usar performItemClick en las vistas de lista / cuadrícula, incluso si es invisible.
kiranking
264

De la documentación puedes decir que

View.GONE Esta vista es invisible y no ocupa espacio para el diseño.

View.INVISIBLE Esta vista es invisible, pero aún ocupa espacio para propósitos de diseño.


Vamos a aclarar la idea con algunas fotos.

Suponga que tiene tres botones, como a continuación

ingrese la descripción de la imagen aquí

Ahora, si configura la visibilidad del Botón Dos como invisible ( View.INVISIBLE), la salida será

ingrese la descripción de la imagen aquí

Y cuando configura la visibilidad del Botón Dos como desaparecida ( View.GONE), la salida será

ingrese la descripción de la imagen aquí

Espero que esto aclare tus dudas.

Pankaj Kumar
fuente
44
¿Es necesario aclarar la idea? Parece lo suficientemente claro para mí solo por la explicación.
John Dvorak
16
@ JanDvorak :) ¡Genial! No tengo respuesta para tu pregunta. Si cree que esto fue muy claro para todos los usuarios, la respuesta aceptada debe ser un comentario y un enlace al sitio de documentación. ¿Estoy en lo correcto?
Pankaj Kumar
¿Qué pasa si lo uso para edittext. ¿Es posible obtener el valor de edittext?
Ashish
32

Para ListView o GridView hay otra diferencia, cuando la visibilidad se establece inicialmente en

INVISIBLE:

La función getView () del adaptador llamada

IDO:

La función getView () del adaptador no llamó, evitando así que se carguen las vistas, cuando no es necesario

mes
fuente
10

INVISIBLE:
la vista debe dibujarse y lleva tiempo.

IDA:
no es necesario dibujar la vista.

twlkyao
fuente
8
La vista no se dibuja, se mide y se presenta.
cyroxis
¡@cyroxis tal vez él / ella se refiere al método ondraw!
David
7

Me gustaría agregar a las respuestas correctas y exitosas, que si inicializa una vista con visibilidad como View.GONE, la vista podría no haberse inicializado y obtendrá algunos errores aleatorios.

Por ejemplo, si inicializa un diseño como View.GONEy luego intenta iniciar una animación, desde mi experiencia, tengo mi animación trabajando aleatoriamente. Aveces si aveces no.

Entonces, antes de manejar (cambiar el tamaño, mover, lo que sea) una vista, debe iniciarla como View.VISIBLEo View.INVISIBLErepresentarla (dibujarla) en la pantalla y luego manejarla.

Rafael Ruiz Muñoz
fuente
Sí, tienes razón, funciona solo a veces cuando la vista esGONE
Suraj Bahadur
4

cuando lo hace Desaparecido cada vez que se compila el programa, el componente se inicializa, lo que significa que está eliminando el componente del diseño y cuando lo hace invisible, ocupará el mismo espacio en el diseño, pero cada vez que no necesite inicializarlo .

si configura Visibility = Gone, entonces debe inicializar el componente ... como

por ejemplo, Botón _mButton = botón nuevo (esto);

_mButton = (Botón) findViewByid (R.id.mButton);

por lo que llevará más tiempo en comparación con Visibilidad = invisible.

kuldeep zala
fuente
4
  • View.INVISIBLE -> La vista es invisible pero ocupará algo de espacio en el diseño

  • View.GONE -> La vista no es visible y no ocupará ningún espacio en el diseño

Yugandhar Vadlamudi
fuente
0

View.GONE = La vista no se mostrará y el resto de las vistas no tendrá en cuenta su existencia

View.INVISIBLE = La vista no se mostrará, pero ocupará el espacio asignado en el diseño

MKH
fuente