Se você não quiser usar xml, faça uma extensão Kotlin para ocultar o teclado
// In onResume, call this
myView.hideKeyboard()
fun View.hideKeyboard() {
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
}
Alternativas baseadas no caso de uso:
fun Fragment.hideKeyboard() {
view?.let { activity?.hideKeyboard(it) }
}
fun Activity.hideKeyboard() {
// Calls Context.hideKeyboard
hideKeyboard(currentFocus ?: View(this))
}
fun Context.hideKeyboard(view: View) {
view.hideKeyboard()
}
Como mostrar o teclado virtual
fun Context.showKeyboard() { // Or View.showKeyboard()
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInput(SHOW_FORCED, HIDE_IMPLICIT_ONLY)
}
Método mais simples ao solicitar simultaneamente o foco em um edittext
myEdittext.focus()
fun View.focus() {
requestFocus()
showKeyboard()
}
Simplificação de bônus:
Remova os requisitos para sempre usar getSystemService
: Biblioteca Splitties
// Simplifies above solution to just
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
android:windowSoftInputMode="stateHidden"
Use as seguintes funções para mostrar / ocultar o teclado:
fonte
onFocusChange()
Basta adicionar dois atributos à visualização pai do editText.
fonte
Coloque isso no manifesto dentro da tag Activity
fonte
Tente o seguinte:
Veja este para mais detalhes.
fonte
Para ocultar o teclado virtual no momento do início de Nova Atividade ou
onCreate()
,onStart()
etc. , você pode usar o código abaixo:fonte
Usando AndroidManifest.xml
Usando Java
usando a solução acima, o teclado esconde, mas evita que o foco ocorra quando a atividade é criada, mas agarre-a quando você os toca usando:
adicione seu EditText
adicione também o ouvinte do seu EditText
fonte
Adicione o seguinte texto ao seu arquivo xml.
fonte
Espero que isso funcione, tentei vários métodos, mas este funcionou para mim
fragments
. basta colocar esta linha no onCreateview / init.fonte
Para ocultar o teclado virtual no momento do início de Nova Atividade ou no método onCreate (), onStart () etc., use o código abaixo:
Para ocultar a tecla programável no momento do botão, clique em atividade:
fonte
Use SOFT_INPUT_STATE_ALWAYS_HIDDEN em vez de SOFT_INPUT_STATE_HIDDEN
fonte
adicione sua atividade em manifesta essa propriedade
fonte
Coloque esse código no seu arquivo java e passe o argumento para o objeto no edittext,
fonte
Você pode definir a configuração no AndroidManifest.xml
Exemplo:
fonte
Use o código a seguir para ocultar a tecla programável pela primeira vez ao iniciar a atividade
fonte
Experimente este também
fonte
As respostas acima também estão corretas. Eu só quero dar um breve resumo de que há duas maneiras de ocultar o teclado ao iniciar a atividade, a partir do manifest.xml. por exemplo:
ou
fonte
Isto é o que eu fiz:
fonte
Se o seu aplicativo estiver direcionado para o nível 21 da API do Android ou mais, existe um método padrão disponível.
Verifique se você definiu o código abaixo na
EditText
tag XML.fonte
Tente isso.
Primeiro no seu xml pesquisável, os campos (nome e dica etc) colocam
@string
e não as cadeias literais.Em seguida
onCreateOptionsMenu
, método , ele deve ter umComponentName
objeto com o nome do seu pacote e o nome completo da sua classe (com o nome do pacote) - Caso a atividade que possui oSearchView
componente seja a mesma que a exibição dos resultados da pesquisagetComponentName()
, conforme o desenvolvedor do google android.Tentei muitas soluções e, depois de muito, muito trabalho, essa solução funciona para mim.
fonte
fonte
vai funcionar
fonte