Android: diferencia entre invisible y ido?
¿Cuál es la diferencia entre invisible
y gone
para el estado de Visibilidad de vista?
- Texto para marquesina dinámicamente
- Línea vertical XML
- cómo redimensionar automáticamente, compatible, ajustar el tamaño de pantalla para todos los dispositivos android
- android - HTML en el recurso de cadena
- Instrucción format en un archivo de recursos de cadena
- Android: El editor XML predeterminado ya no se abre
- ¿Cómo obtener datos XML de los activos en android?
- El segundo diseño no se muestra con la etiqueta de inclusión en el estudio de Android
- Cómo colorear el contorno de mi texto negro en xml para android
- El relleno no funciona en algunos dispositivos
- Botón androide con bordes de medio círculo
- ¿Cómo concatenar cadenas múltiples en android XML?
- ExpandableListView dentro de una vista de desplazamiento
INVISIBLE:
Esta vista es invisible, pero todavía ocupa espacio para propósitos de diseño.
IDO:
Esta vista es invisible, y no toma ningún espacio para propósitos de diseño.
De Documentación se puede decir que
View.GONE Esta vista es invisible, y no toma ningún espacio para propósitos de diseño.
View.INVISIBLE Esta vista es invisible, pero todavía ocupa espacio para propósitos de diseño.
Deja claro la idea con algunas fotos.
Suponga que tiene tres botones, como a continuación
Ahora si establece la visibilidad del botón dos como invisible ( View.INVISIBLE
), entonces la salida será
Y cuando View.GONE
visibilidad del botón dos como ido ( View.GONE
) entonces la salida será
Espero que esto despeje sus dudas.
Para ListView o GridView hay otra diferencia, cuando la visibilidad inicialmente establecida en
INVISIBLE:
Función getView () del adaptador llamada
IDO:
La función getView () del adaptador no llamó, evitando así que las vistas se carguen, cuando es innecesario
INVISIBLE:
La vista tiene que ser dibujada y toma tiempo.
IDO:
La vista no tiene que ser dibujada.
Me gustaría añadir a las respuestas correctas y exitosas, que si inicializa una vista con visibilidad como View.GONE
, la vista podría no haber sido inicializado y obtendrá algunos errores aleatorios.
Por ejemplo, si inicializa un diseño como View.GONE
y luego intenta iniciar una animación, de mi experiencia tengo mi animación trabajando aleatoriamente veces. Aveces si aveces no.
Así que antes de manejar (cambiar el tamaño, mover, lo que sea) una vista, tienes que init como View.VISIBLE
o View.INVISIBLE
para hacerla (dibujar) en la pantalla, y luego manejarlo.
-
View.INVISIBLE -> La vista es invisible, pero ocupará algún espacio en el diseño
-
View.GONE -> La vista no es visible y no ocupará ningún espacio en el diseño
Cuando lo hace Se fue todo el tiempo de la compilación del programa que el componente se inicializa que significa que está quitando el componente de la disposición y cuando lo haces invisible el componente tomará el mismo espacio en el diseño, pero cada vez que no necesita inicializarlo .
Si usted fija Visibility = Gone entonces usted tiene que inicializar el componente … como
Por ejemplo Button _mButton = new Button (this);
_mButton = (Botón) findViewByid (R.id.mButton);
Por lo que tomará más tiempo en comparación con Visibilidad = invisible.