Tengo una pregunta relativamente simple. Tengo una actividad con muchos EditText en ellos. Cuando abro la actividad, se enfoca automáticamente en el primer EditText y muestra el teclado virtual.
¿Cómo puedo prevenir esto?
Tengo una pregunta relativamente simple. Tengo una actividad con muchos EditText en ellos. Cuando abro la actividad, se enfoca automáticamente en el primer EditText y muestra el teclado virtual.
¿Cómo puedo prevenir esto?
Respuestas:
Utilice estos atributos en su etiqueta de diseño en un archivo XML:
Como informaron otros miembros en los comentarios, no funciona, por
ScrollView
lo que debe agregar estos atributos al hijo principal deScrollView
.fuente
Puede agregar esto a su actividad de manifiesto de Android:
fuente
android:windowSoftInputMode="stateHidden|adjustPan"
Tengo varias implementaciones descritas aquí, pero ahora las he agregado a
AndroidManifest.xml
miActivity
propiedad:Creo que esta es la forma fácil incluso si está utilizando
fragments
.fuente
Si tiene otra vista de su actividad como
ListView
, también puede hacer:en su onResume () para tomar el foco del
editText
.Sé que esta pregunta ha sido respondida, pero solo proporciono una solución alternativa que funcionó para mí :)
fuente
https://stackoverflow.com/a/11627976/5217837 Esto es casi correcto:
Pero debería ser SOFT_INPUT_STATE_HIDDEN en lugar de SOFT_INPUT_STATE_ALWAYS_VISIBLE
fuente
Use esto en el código de su actividad:
fuente
Tuve un problema similar, incluso cuando cambiaba de pestaña, el teclado aparecía automáticamente y permanecía así, con Android 3.2.1 en una tableta. Utilice el siguiente método:
En onCreate () y en onPause () de la actividad para cada EditText:
setEditTextFocus (myEditText, falso);
Para cada EditText un OnTouchListener:
Para cada uno
EditText
en elOnEditorActionListener
:Y para cada uno
EditText
en ellayout xml
:Probablemente haya más optimización de código posible.
fuente
fuente
Encontré esta solución simple que funcionó para mí Establezca estos atributos en su diseño principal:
Y ahora, cuando la actividad comience, este diseño principal se centrará de forma predeterminada.
Además, podemos quitar el foco de las vistas secundarias en tiempo de ejecución volviendo a centrarse en el diseño principal, así:
Espero que funcione para ti.
fuente
esta es la solución que estoy usando, no es la mejor solución pero me está funcionando bien
fuente
Curiosamente, esta documentación https://developer.android.com/training/keyboard-input/visibility.html establece que cuando se inicia una actividad y se enfoca un campo de texto, el teclado virtual no se muestra (y luego pasa a mostrarle cómo mostrar el teclado si lo desea con algún código).
En mi Samsung Galaxy S5, así es como funciona mi aplicación (sin entrada de manifiesto o código específico), sin teclado virtual. Sin embargo, en un Lollipop AVD, se muestra un teclado virtual, lo que contraviene el documento proporcionado anteriormente.
Si obtiene este comportamiento al probar en un AVD, es posible que desee probar en un dispositivo real para ver qué sucede.
fuente
Esto tiene algunas buenas respuestas en la siguiente publicación: Evite que EditText se enfoque en el inicio de la actividad . El que uso habitualmente es el siguiente código de Morgan :
NOTA: El elemento ficticio debe COLOCARSE JUSTO ANTES del elemento enfocable.
Y creo que debería funcionar perfectamente incluso con ScrollView y tampoco he tenido problemas de accesibilidad para esto.
fuente
Esto ocurre cuando su EditText obtiene Focus automáticamente cuando comienza su actividad. Entonces, una forma fácil y estable de solucionar este problema es simplemente establecer el enfoque inicial en cualquier otra vista, como un botón, etc.
Puede hacer esto en su diseño XML, no se requiere código.
fuente
La respuesta aceptada no me funciona, es por eso que dar una solución de trabajo de respuesta, ¡puede ser útil!
Ahora el teclado está abierto, disfruta :)
fuente
Funcionando bien
fuente
Agregue el siguiente código a la parte superior del XML de la actividad y asegúrese de que la Vista esté por encima de EditText
fuente
android:focusableInTouchMode="true"
Agregue la línea anterior a xml de
EditText
oTextInputLayout
que tiene el foco y está haciendosoftInputKeyboard
que aparezca.Esto nos resolvió el problema y ahora el teclado no aparece
fuente
search_edit_text = (EditText) findViewById (R.id.search_edit_text);
Esto funciona para mí, chicos, el fragmento puede tener una sintaxis diferente. ESTO FUNCIONA PARA LA ACTIVIDAD
fuente
Si su vista tiene EditText y Listview, el teclado se abrirá de forma predeterminada. Para evitar que el teclado aparezca de forma predeterminada, haga lo siguiente
Asegúrese de que solicita el enfoque en la vista de lista después de obtener la vista de editText.
Por ejemplo
Si lo hace, editText se enfocará y aparecerá el teclado.
fuente