Sobes.tech
Junior

Ce înseamnă parametrul windowSoftInputMode în Android?

sobes.tech AI

Răspuns de la AI

windowSoftInputMode — este un atribut în elementul <activity> din manifestul Android (AndroidManifest.xml), care definește interacțiunea ferestrei activității cu tastatura virtuală (intrare software). Influentează comportamentul ferestrei activității la afișarea sau ascunderea tastaturii.

Valori posibile ale atributului:

  • stateUnspecified: Tastatura este ascunsă sau afișată în funcție de setările sistemului și context. Aceasta este valoarea implicită.
  • stateUnchanged: Starea tastaturii (ascunsă/afișată) nu se schimbă la accesarea acestei activități.
  • stateHidden: Tastatura este întotdeauna ascunsă la accesarea acestei activități.
  • stateAlwaysHidden: Tastatura este întotdeauna ascunsă dacă fereastra activității are focus.
  • stateVisible: Tastatura este întotdeauna vizibilă la accesarea acestei activități.
  • stateAlwaysVisible: Tastatura este întotdeauna vizibilă dacă fereastra activității are focus.
  • adjustUnspecified: Sistemul determină modul de ajustare a dimensiunii ferestrei sau conținutului pentru a face loc tastaturii. Aceasta este valoarea implicită.
  • adjustResize: Dimensiunea ferestrei activității se modifică astfel încât întreg conținutul să poată fi derulat și să afișeze câmpul de intrare focalizat, fără a fi acoperit de tastatură.
  • adjustPan: Fereastra activității este panoramată astfel încât câmpul de intrare curent să fie vizibil, dar o parte din conținut poate fi acoperită de tastatură. Dimensiunea ferestrei nu se modifică.
  • adjustNothing: Flag-ul este învechit și nu mai este suportat. Comportamentul este similar cu adjustUnspecified.

Unele valori pot fi combinate (de exemplu, stateVisible|adjustResize).

Exemplu de utilizare în 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>