Sobes.tech
Junior

¿Qué significa el parámetro windowSoftInputMode en Android?

sobes.tech AI

Respuesta de la IA

windowSoftInputMode — es un atributo en el elemento <activity> del manifiesto de Android (AndroidManifest.xml), que define la interacción de la ventana de la actividad con el teclado virtual (entrada de software). Afecta el comportamiento de la ventana de la actividad al mostrar u ocultar el teclado.

Valores posibles del atributo:

  • stateUnspecified: El teclado está oculto o visible dependiendo de la configuración del sistema y el contexto. Este es el valor predeterminado.
  • stateUnchanged: El estado del teclado (oculto/visible) no cambia al acceder a esta actividad.
  • stateHidden: El teclado siempre está oculto al acceder a esta actividad.
  • stateAlwaysHidden: El teclado siempre está oculto si la ventana de la actividad tiene foco.
  • stateVisible: El teclado siempre es visible al acceder a esta actividad.
  • stateAlwaysVisible: El teclado siempre es visible si la ventana de la actividad tiene foco.
  • adjustUnspecified: El sistema determina cómo ajustar el tamaño de la ventana o el contenido para dejar espacio para el teclado. Este es el valor predeterminado.
  • adjustResize: El tamaño de la ventana de la actividad cambia para que todo su contenido pueda desplazarse y mostrar el campo de entrada enfocado, sin ser cubierto por el teclado.
  • adjustPan: La ventana de la actividad se panoramea para que el campo de entrada actual sea visible, aunque parte del contenido pueda ser cubierto por el teclado. El tamaño de la ventana no cambia.
  • adjustNothing: La bandera está obsoleta y no es compatible. El comportamiento es similar a adjustUnspecified.

Algunos valores pueden combinarse (por ejemplo, stateVisible|adjustResize).

Ejemplo de uso en el manifiesto:

<activity
    android:name=".MainActivity"
    android:label="@string/app_name"
    android:windowSoftInputMode="stateVisible|adjustResize">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>