Jeg har en EditText
og en Button
i oppsettet mitt.
Etter å ha skrevet i redigeringsfeltet og klikket på "knappen", ønsker jeg å skjule det virtuelle tastaturet. Jeg antar at dette er et enkelt stykke kode, men hvor kan jeg finne et eksempel på det?
Du kan tvinge Android til å skjule det virtuelle tastaturet ved hjelp av InputMethodManager, kaller hideSoftInputFromWindow
, passerer i token i vinduet som inneholder din fokuserte visning.
// Check if no view has focus:
View view = this.getCurrentFocus();
if (view != null) {
InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0);
}
Dette vil tvinge tastaturet til å være skjult i alle situasjoner. I noen tilfeller vil du ønske å sende inn InputMethodManager.HIDE_IMPLICIT_ONLY
som den andre parameteren for å sikre at du bare skjuler tastaturet når brukeren ikke eksplisitt tvinger det til å vises (ved å holde nede menyen).
Merk: Hvis du vil gjøre dette i Kotlin, bruk:
context?.getSystemService(Context.INPUT_METHOD_SERVICE) som InputMethodManager
.
Kotlin-syntaks.
// Check if no view has focus:
val view = this.currentFocus
view?.let { v ->
val imm = getSystemService(Context.INPUT_METHOD_SERVICE) as? InputMethodManager
imm?.hideSoftInputFromWindow(v.windowToken, 0)
}
Også nyttig for å skjule soft-tastaturet er:
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
Dette kan brukes til å undertrykke funksjonstastaturet inntil brukeren faktisk berører editText View.