Ik heb een EditText
en een Button
in mijn layout.
Nadat ik in het edit veld heb geschreven en op de Button
heb geklikt, wil ik het virtuele toetsenbord verbergen. Ik neem aan dat dit een simpel stukje code is, maar waar kan ik daar een voorbeeld van vinden?
U kunt Android dwingen om het virtuele toetsenbord te verbergen met behulp van de InputMethodManager, door het aanroepen van hideSoftInputFromWindow
, waarbij u het token van het venster met uw gefocuste weergave doorgeeft.
// 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);
}
Dit zorgt ervoor dat het toetsenbord in alle situaties wordt verborgen. In sommige gevallen zul je InputMethodManager.HIDE_IMPLICIT_ONLY
als tweede parameter willen doorgeven om er zeker van te zijn dat je het toetsenbord alleen verbergt wanneer de gebruiker het niet expliciet forceerde om te verschijnen (door het menu ingedrukt te houden).
Note: Als je dit in Kotlin wilt doen, gebruik dan:
context?.getSystemService(Context.INPUT_METHOD_SERVICE) als InputMethodManager
.
Kotlin Syntax
// 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)
}
Ook handig voor het verbergen van het soft-keyboard is:
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
Dit kan worden gebruikt om het soft-keyboard te onderdrukken totdat de gebruiker daadwerkelijk de editText View aanraakt.