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.

Si el post ha sido de tu agrado te invito a que me sigas para saber cuando haya escrito un nuevo post, haya actualizado algún sistema o publicado un nuevo software. Facebook | X | Instagram | Telegram | También estoy a tus órdenes para cualquier contratación en mi página de contacto