Si no quieres usar xml, crea una extensión de Kotlin para ocultar el teclado
// In onResume, call this
myView.hideKeyboard()
fun View.hideKeyboard() {
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
}
Alternativas basadas en casos 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()
}
Cómo mostrar un teclado suave
fun Context.showKeyboard() { // Or View.showKeyboard()
val inputMethodManager = context.getSystemService(INPUT_METHOD_SERVICE) as InputMethodManager
inputMethodManager.toggleSoftInput(SHOW_FORCED, HIDE_IMPLICIT_ONLY)
}
Método más simple al solicitar simultáneamente el foco en un texto de edición
myEdittext.focus()
fun View.focus() {
requestFocus()
showKeyboard()
}
Simplificación de bonificación:
Elimine el requisito para usar siempre getSystemService
: Biblioteca Splitties
// Simplifies above solution to just
inputMethodManager.hideSoftInputFromWindow(windowToken, 0)
android:windowSoftInputMode="stateHidden"
Use las siguientes funciones para mostrar / ocultar el teclado:
fuente
onFocusChange()
Simplemente agregue dos atributos a la vista principal de editText.
fuente
Ponga esto en el manifiesto dentro de la etiqueta Actividad
fuente
Prueba esto:
Mira este para más detalles.
fuente
Para ocultar el softkeyboard en el momento de inicio de actividad o Nueva
onCreate()
,onStart()
etc se puede usar el siguiente código:fuente
Usando AndroidManifest.xml
Usando Java
usando la solución anterior, el teclado se oculta pero el texto de edición no se enfoca cuando se crea la actividad, pero tómalo cuando los tocas usando:
agregar en su EditText
también agregue el oyente de su EditText
fuente
Agregue el siguiente texto a su archivo xml.
fuente
Espero que esto funcione, probé muchos métodos, pero este funcionó para mí
fragments
. solo ponga esta línea en onCreateview / init.fuente
Para ocultar el teclado virtual en el momento del inicio de Nueva actividad o en el método onCreate (), onStart (), etc., use el siguiente código:
Para ocultar el teclado virtual en el momento del botón, haga clic en la actividad:
fuente
Use SOFT_INPUT_STATE_ALWAYS_HIDDEN en lugar de SOFT_INPUT_STATE_HIDDEN
fuente
agregue en su actividad en múltiples esta propiedad
fuente
Pon este código en tu archivo java y pasa el argumento para el objeto en edittext,
fuente
Puede configurar config en AndroidManifest.xml
Ejemplo:
fuente
Use el siguiente código para Ocultar el teclado virtual por primera vez cuando inicie la Actividad
fuente
Prueba este también
fuente
Las respuestas anteriores también son correctas. Solo quiero dar un resumen de que hay dos formas de ocultar el teclado al iniciar la actividad, desde manifest.xml. p.ej:
o
fuente
Esto es lo que hice:
fuente
Si su aplicación está dirigida a Android API Level 21 o más, hay un método predeterminado disponible.
Asegúrese de haber establecido el siguiente código en la
EditText
etiqueta XML.fuente
Prueba esto.
Primero en su xml de búsqueda, los campos (nombre y pista, etc.) ponen
@string
y no cadenas literales.Luego
onCreateOptionsMenu
, el método debe tener unComponentName
objeto con el nombre del paquete y el nombre de la clase completa (con el nombre del paquete): en caso de que la actividad que tiene elSearchView
componente sea la misma que la de los resultados de búsqueda de usogetComponentName()
, como dice el desarrollador de Google Android.Probé muchas soluciones y después de mucho, mucho trabajo, esta solución me funciona.
fuente
fuente
funcionará
fuente