Eu tenho um EditText
e um Button
no meu layout.
Após escrever no campo de edição e clicar no Button
, quero esconder o teclado virtual. Presumo que este seja um simples pedaço de código, mas onde posso encontrar um exemplo?
Você pode forçar o Android a esconder o teclado virtual utilizando o InputMethodManager, chamando hideSoftInputFromWindow`, passando no token da janela contendo sua visão focada.
// 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);
}
Isto forçará o teclado a ser escondido em todas as situações. Em alguns casos você vai querer passar em InputMethodManager.HIDE_IMPLICIT_ONLY
como segundo parâmetro para garantir que você só esconda o teclado quando o usuário não o forçou explicitamente a aparecer (segurando o menu para baixo).
Note: Se quiseres fazer isto em Kotlin, usa:
context?.getSystemService(Context.INPUT_METHOD_SERVICE) como 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)
}
Também é útil para esconder o soft-keyboard:
getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN
);
Isto pode ser usado para suprimir o softkeyboard até que o usuário realmente toque a visualização de texto editText View.