2011-04-22 23 views
93

En mi aplicación, tengo 2 LinearLayout uno encima del otro. A través de una opción de menú, quiero poder hacer desaparecer el de abajo, y tener el superior desplegable sobre el LinearLayout desaparecido.¿Cómo ocultar una vista mediante programación?

El problema es que no tengo idea de cómo hacer esto en Java.

No tiene que estar animado, quiero ocultar el Layout al devolver otra actividad (el menú), en OnActivityResult. El menú activity establece un boolean en la que puedo comprobar en OnActivityResult, y de acuerdo con su valor determino si necesito para ocultar o mostrar la parte inferior Layout:

// Only change value if it is different from what it was. 
if(mUseVolumeButtonAsPTT != resultData.getBoolean("UseVolumeButtonAsPTT")){ 
    mUseVolumeButtonAsPTT = resultData.getBoolean("UseVolumeButtonAsPTT"); 
    if(!mUseVolumeButtonAsPTT){ 
     // Hide lower LinearLayout. 
    } else { 
     // Show lower LinearLayout. 
    } 
} 

¿Alguien puede dar una pista o un enlace de cómo me debería hacer esto?

Respuesta

255

Puede llamar view.setVisibility(View.GONE) si quieres eliminarlo de la disposición.

O view.setVisibility(View.INVISIBLE) si solo quiere ocultarlo.

De Android Docs:

INVISIBLE

Este punto de vista es invisible, pero aún ocupa un espacio con fines de diseño. Usar con setVisibility(int) y android:visibility.

IDO

Este punto de vista es invisible, y no se necesita ningún espacio para fines de diseño. Usar con setVisibility(int) y android:visibility.

+15

¿Puede el usuario seguir interactuando si está configurado para view.setVisibility (View.INVISIBLE)? – WhiskThimble

+8

no, no pueden – Quillion

+0

¿Puede una actividad, por ejemplo, realizar cambios en una vista si está establecida en GONE? Me imagino que podrías si se configura como INVISIBLE. – moatist

15

Prueba esto:

linearLayout.setVisibility(View.GONE); 
Cuestiones relacionadas