Sobes.tech
Junior

Co oznacza parametr windowSoftInputMode w Android?

sobes.tech AI

Odpowiedź od AI

windowSoftInputMode — jest atrybutem w elemencie <activity> w manifeście Android (AndroidManifest.xml), który określa interakcję okna aktywności z wirtualną klawiaturą (wprowadzanie programowe). Wpływa na zachowanie okna aktywności podczas wyświetlania lub ukrywania klawiatury.

Możliwe wartości atrybutu:

  • stateUnspecified: Klawiatura jest ukryta lub widoczna w zależności od ustawień systemu i kontekstu. To domyślna wartość.
  • stateUnchanged: Stan klawiatury (ukryta/widoczna) nie zmienia się podczas przejścia do tej aktywności.
  • stateHidden: Klawiatura zawsze ukryta podczas przejścia do tej aktywności.
  • stateAlwaysHidden: Klawiatura zawsze ukryta, jeśli okno aktywności ma fokus.
  • stateVisible: Klawiatura zawsze widoczna podczas przejścia do tej aktywności.
  • stateAlwaysVisible: Klawiatura zawsze widoczna, jeśli okno aktywności ma fokus.
  • adjustUnspecified: System sam określa, jak dostosować rozmiar okna lub zawartość, aby zrobić miejsce na klawiaturę. To domyślna wartość.
  • adjustResize: Rozmiar okna aktywności zmienia się tak, aby cała jego zawartość mogła być przewinięta i wyświetlić skupione pole wejściowe, nie będąc zasłoniętym przez klawiaturę.
  • adjustPan: Okno aktywności jest panoramowane tak, aby bieżące pole wejściowe było widoczne, ale część zawartości może być zasłonięta przez klawiaturę. Rozmiar okna nie zmienia się.
  • adjustNothing: Flaga jest przestarzała i nie jest obsługiwana. Zachowanie jest podobne do adjustUnspecified.

Niektóre wartości mogą być łączone (np. stateVisible|adjustResize).

Przykład użycia w manifeście:

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