Sobes.tech
Junior

Mit jelent a windowSoftInputMode paraméter az Androidban?

sobes.tech MI

Válasz az MI-től

windowSoftInputMode — ez egy attribútum az <activity> elemben az Android AndroidManifest.xml fájljában, amely meghatározza az aktivitás ablakának interakcióját a virtuális billentyűzettel (szoftveres bevitel). Befolyásolja az aktivitás ablakának viselkedését a billentyűzet megjelenítése vagy elrejtése során.

Az attribútum lehetséges értékei:

  • stateUnspecified: A billentyűzet el van rejtve vagy látható a rendszer beállításaitól és a kontextustól függően. Ez az alapértelmezett érték.
  • stateUnchanged: A billentyűzet állapota (elrejtve/látható) nem változik az adott aktivitásra való áttéréskor.
  • stateHidden: A billentyűzet mindig el van rejtve az aktivitás megnyitásakor.
  • stateAlwaysHidden: A billentyűzet mindig el van rejtve, ha az aktivitás ablak fókuszban van.
  • stateVisible: A billentyűzet mindig látható az aktivitás megnyitásakor.
  • stateAlwaysVisible: A billentyűzet mindig látható, ha az aktivitás ablak fókuszban van.
  • adjustUnspecified: A rendszer maga határozza meg, hogyan igazítsa az ablak vagy a tartalom méretét, hogy helyet csináljon a billentyűzetnek. Ez az alapértelmezett érték.
  • adjustResize: Az aktivitás ablakának mérete úgy változik, hogy az összes tartalom görgethető legyen, és a fókuszált bevitel mező látható legyen, anélkül, hogy a billentyűzet eltakarna.
  • adjustPan: Az aktivitás ablak panoráma módon eltolódik, hogy a jelenlegi bevitel mező látható legyen, de a tartalom egy része eltakarhatja a billentyűzetet. Az ablak mérete nem változik.
  • adjustNothing: A zászló elavult és nem támogatott. Viselkedése hasonló az adjustUnspecified-hez.

Néhány érték kombinálható (pl. stateVisible|adjustResize).

Példa a manifestben való használatra:

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