Sobes.tech
Junior

Was bedeutet der Parameter windowSoftInputMode in Android?

sobes.tech KI

Antwort von AI

windowSoftInputMode — ist ein Attribut im <activity>-Element in der Android-Manifestdatei (AndroidManifest.xml), das die Interaktion des Aktivitätsfensters mit der virtuellen Tastatur (Softwareeingabe) definiert. Es beeinflusst das Verhalten des Aktivitätsfensters beim Anzeigen oder Verbergen der Tastatur.

Mögliche Werte des Attributs:

  • stateUnspecified: Die Tastatur ist je nach Systemeinstellungen und Kontext ausgeblendet oder eingeblendet. Dies ist der Standardwert.
  • stateUnchanged: Der Zustand der Tastatur (ausgeblendet/eingeblendet) ändert sich beim Zugriff auf diese Aktivität nicht.
  • stateHidden: Die Tastatur ist beim Zugriff auf diese Aktivität immer ausgeblendet.
  • stateAlwaysHidden: Die Tastatur ist immer ausgeblendet, wenn das Fenster der Aktivität den Fokus hat.
  • stateVisible: Die Tastatur ist beim Zugriff auf diese Aktivität immer sichtbar.
  • stateAlwaysVisible: Die Tastatur ist immer sichtbar, wenn das Fenster der Aktivität den Fokus hat.
  • adjustUnspecified: Das System bestimmt, wie die Fenstergröße oder der Inhalt angepasst werden soll, um Platz für die Tastatur zu schaffen. Dies ist der Standardwert.
  • adjustResize: Die Größe des Aktivitätsfensters ändert sich so, dass sein gesamter Inhalt gescrollt werden kann, um das fokussierte Eingabefeld anzuzeigen, ohne von der Tastatur verdeckt zu werden.
  • adjustPan: Das Aktivitätsfenster wird verschoben, sodass das aktuelle Eingabefeld sichtbar ist, wobei ein Teil des Inhalts von der Tastatur verdeckt werden kann. Die Fenstergröße ändert sich nicht.
  • adjustNothing: Das Flag ist veraltet und wird nicht unterstützt. Das Verhalten ist ähnlich wie bei adjustUnspecified.

Einige Werte können kombiniert werden (z.B. stateVisible|adjustResize).

Beispiel für die Verwendung im Manifest:

<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>