Jeg har en EditText
og en Button
i mit layout.
Når jeg har skrevet i redigeringsfeltet og klikket på Button
, vil jeg gerne skjule det virtuelle tastatur. Jeg går ud fra, at det er et simpelt stykke kode, men hvor kan jeg finde et eksempel på det?
Du kan tvinge Android til at skjule det virtuelle tastatur ved hjælp af InputMethodManager, ved at kalde hideSoftInputFromWindow
og ved at indtaste tokenet for det vindue, der indeholder din fokuserede 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 at være skjult i alle situationer. I nogle tilfælde vil du gerne have InputMethodManager.HIDE_IMPLICIT_ONLY
som den anden parameter for at sikre, at du kun skjuler tastaturet, når brugeren ikke udtrykkeligt har tvunget det til at blive vist (ved at holde menu nede).
Note: Hvis du vil gøre dette i Kotlin, skal du bruge:
Hvis du vil bruge denne metode i Kotlin, så brug den i Kotlin: context?.getSystemService(Context.INPUT_METHOD_SERVICE) as 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)
}
Det er også nyttigt til at skjule soft-keyboardet:
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
Dette kan bruges til at undertrykke soft-keyboardet, indtil brugeren rent faktisk rører ved editText View.