Actualmente, tengo un diseño que contiene un Button
, un TextView
y un EditText
. Cuando se muestra el diseño, el enfoque se colocará automáticamente en EditText
, lo que activará el teclado para que aparezca en el teléfono Android. No es lo que quiero. ¿Hay alguna forma de que pueda establecer el enfoque en TextView
o en nada cuando se muestra un diseño?
90
Deberías agregar esto:
fuente
Conjunto
en tus
<EditText/>
fuente
Para establecer el enfoque, retrase requestFocus () usando un Handler.
fuente
Puedes intentar ocultar el teclado. Algo como esto:
fuente
Tratar
fuente
Establezca estas líneas en
OnResume
también y asegúrese de quefocusableInTouch
esté establecido en verdadero mientras inicializa sus controlesfuente
para cambiar el enfoque, haga que el textView en xml se pueda enfocar
y en java en crear
textView.requestFocus();
o simplemente esconde el teclado
fuente
Ninguna de las respuestas anteriores me funciona. La única solución (digamos) ha sido cambiar el primer TextView en un EditText deshabilitado que recibe el foco y luego agregar
en la devolución de llamada onCreate para evitar que se muestre el teclado. Ahora mi primer EditText parece un TextView pero finalmente puede obtener el enfoque inicial.
fuente
La última sugerencia es la solución correcta. Solo para repetir, primero configure
android:focusable="true"
en elxml
archivo de diseño , luegorequestFocus()
en la vista en su código.fuente
Creo que una vista de texto no se puede enfocar. Intente establecer el foco en un botón, por ejemplo, o establecer la propiedad enfocable en verdadero.
fuente
puede agregar un texto de edición de tamaño "0 dip" como el primer control en ur xml, por lo que se centrará en el render (asegúrese de que sea enfocable y todo ...)
fuente
Puede comenzar agregando
android:windowSoftInputMode
a su actividad en elAndroidManifest.xml
archivo.Esto hará que el teclado no se muestre, pero
EditText
aún tiene el foco. Para solucionar esto, se puede establecerandroid:focusableInTouchmode
yandroid:focusable
quetrue
en su vista raíz.El código anterior se asegurará de que se
RelativeLayout
esté enfocando en lugar deEditText
fuente
El enfoque es para seleccionar componentes de la interfaz de usuario cuando está usando algo además del tacto (es decir, un d-pad, un teclado, etc.). Cualquier vista puede recibir el enfoque, aunque algunas no se pueden enfocar de forma predeterminada. (Puede hacer que una vista
setFocusable(true)
se pueda enfocar con y forzarla a enfocarse conrequestFocus()
).Sin embargo, es importante tener en cuenta que cuando está en modo táctil, el enfoque está desactivado . Entonces, si está usando sus dedos, cambiar el enfoque programáticamente no hace nada. La excepción a esto es para las vistas que reciben información de un editor de entrada. An
EditText
es un ejemplo. Para esta situación especialsetFocusableInTouchMode(true)
se utiliza para que el teclado virtual sepa dónde enviar la entrada. UnEditText
tiene esta configuración por defecto. El teclado virtual aparecerá automáticamente.Si no desea que el teclado virtual aparezca automáticamente, puede suprimirlo temporalmente como señaló @abeljus:
Cuando un usuario hace clic en el
EditText
embargo, cuando , todavía debería mostrar el teclado.Otras lecturas:
fuente