En este post te mostraré a ocultar y mostrar vistas o elementos del layout en Android de manera programada utilizando el método setVisibility
para modificar la visibilidad de una View.
Voy a mostrarte cómo hacerlo desde Java invocando al método setVisibility
y pasando las constantes INVISIBLE
, VISIBLE
y GONE
de View.
Mostrar un elemento
Cuando ya tenemos un elemento obtenido con findViewById
invocamos a setVisibility
con View.VISIBLE
:
etObservacionesSituacionEntrega.setVisibility(View.VISIBLE);
De este modo el elemento se va a mostrar.
No olvides importar a View:
import android.view.View;
Ocultar un elemento usando GONE o INVISIBLE
Para ocultar un elemento en Android se invoca al mismo método, y ahora se puede usar GONE
o INVISIBLE
.
La diferencia entre estos es que:
- GONE: el elemento se oculta, y además, no ocupa espacio en el layout.
- INVISIBLE: el elemento se oculta pero sigue ocupando el espacio
Así que lo recomendable es usar GONE
como en el siguiente ejemplo:
etObservacionesSituacionEntrega.setVisibility(View.GONE);
Ocultar o mostrar elemento desde XML
Estas propiedades pueden ser definidas desde XML al definir el layout a través de android:visibility
. Por ejemplo:
<EditText
android:id="@+id/etObservacionesSituacionEntrega"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginTop="8dp"
android:layout_marginEnd="8dp"
android:ems="10"
android:gravity="start|top"
android:hint="@string/observaciones"
android:inputType="textMultiLine"
android:lines="3"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/spinnerSituacionesEntrega"
tools:visibility="visible" />
Fíjate en la línea 13, en ella defino que inicialmente el elemento no se muestra ni ocupa espacio. Pero como al diseñar quiero que sí se vea, especifico tools:visibilty
en visible
para que se muestre en tiempo de diseño.