2012-07-19 19 views

Respuesta

539

INVISIBLE:

Este punto de vista es invisible, pero aún ocupa un espacio con fines de diseño.

IDO:

Este punto de vista es invisible, y no se necesita ningún espacio para fines de diseño.

+86

Parece análogo a 'display: none' &' visibility: hidden' en HTML/CSS :-) – anishsane

26

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

INVISIBLE: función

getView de adaptador() llamada

IDO:

Adapter's ge TView función() no llamó, evitando así puntos de vista a la carga, cuando no es necesario

196

De Documentation se puede decir que

View.GONE Este punto de vista es invisible, y no requiere espacio para los diseños de .

View.INVISIBLE Este punto de vista es invisible, pero aún ocupa un espacio con fines de diseño.


Deja clara la idea con algunas fotos.

Suponga que tiene tres botones, como a continuación

enter image description here

Ahora si se establece la visibilidad del botón Dos tan invisible (View.INVISIBLE), entonces la salida será

enter image description here

Y cuando se establece la visibilidad de los dos botones que se ha ido (View.GONE) entonces la salida será

enter image description here

Hope esto despejar sus dudas.

+3

¿Se debe borrar la idea? Parece claro para mí solo por la explicación. –

+12

@JanDvorak :) ¡Genial! No tengo respuesta para tu pregunta. Si cree que esto fue muy claro para todos los usuarios, la respuesta aceptada debería ser un comentario y un enlace del sitio de documentación. ¿Estoy en lo correcto? –

+10

Gracias @PankajKumar por el ejemplo. –

8

INVISIBLE:
La vista debe dibujarse y lleva tiempo.

GONE:
La vista no tiene que dibujarse.

+7

La vista no se dibuja, se mide y se presenta. – cyroxis

+0

@cyroxis ¡quizás él/ella quiere decir el método ondraw! – David

4

Me gustaría agregar a la respuesta correcta y exitosa, 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.GONE y luego intenta iniciar una animación, según mi experiencia, tengo mi animación trabajando aleatoriamente. Aveces si aveces no.

Por lo tanto, antes de manipular (cambiar el tamaño, mover, lo que sea) una vista, debe iniciarlo como View.VISIBLE o View.INVISIBLE para renderizarlo (dibujarlo) en la pantalla y luego manejarlo.

1

cuando lo hagas desaparecido cada vez que se compila el programa, el componente se inicializa, lo que significa que estás eliminando el componente del diseño y cuando lo haces invisible el componente ocupará el mismo espacio en el diseño pero cada vez que no lo hagas necesita inicializarlo

si establece Visibilidad = Gone entonces usted tiene que inicializar el component..like

por ejemplo Botón _mButton = new Button (this);

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

, por lo que tardará más tiempo que Visibility = invisible.

3
  • View.INVISIBLE -> La vista es invisible pero que ocupará un espacio en la disposición

  • View.GONE -> La vista no es visible y no va a ocupar cualquier espacio en el diseño

Cuestiones relacionadas