He pasado alrededor de 6 horas en esto hasta ahora y no he encontrado más que obstáculos. La premisa general es que hay alguna fila en un ListView
(ya sea generado por el adaptador o agregado como una vista de encabezado) que contiene un EditText
widget y un Button
. Todo lo que quiero hacer es poder usar el jogball / flechas, para navegar el selector a elementos individuales como de costumbre, pero cuando llego a una fila en particular, incluso si tengo que identificar explícitamente la fila, eso tiene un enfoque niño, quiero que ese niño se enfoque en lugar de indicar la posición con el selector.
He probado muchas posibilidades y hasta ahora no he tenido suerte.
diseño:
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
Vista de encabezado:
EditText view = new EditText(this);
listView.addHeaderView(view, null, true);
Suponiendo que hay otros elementos en el adaptador, el uso de las teclas de flecha moverá la selección hacia arriba o hacia abajo en la lista, como se esperaba; pero al llegar a la fila del encabezado, también se muestra con el selector, y no hay forma de enfocarse en el EditText
uso del jogball. Nota: tocando en elEditText
se enfocará en ese punto, sin embargo, eso depende de una pantalla táctil, que no debería ser un requisito.
ListView
aparentemente tiene dos modos a este respecto:
1 setItemsCanFocus(true)
.: el selector nunca se muestra, pero el EditText
puede enfocarse al usar las flechas. El algoritmo de búsqueda de enfoque es difícil de predecir y no hay comentarios visuales (en ninguna fila: tener hijos enfocables o no) sobre qué elemento se selecciona, los cuales pueden brindar al usuario una experiencia inesperada.
2 setItemsCanFocus(false)
.: el selector siempre se dibuja en modo no táctil y EditText
nunca puede enfocarse, incluso si lo toca.
Para empeorar las cosas, la llamada editTextView.requestFocus()
devuelve verdadero, pero de hecho no da el foco EditText.
Lo que estoy imaginando es básicamente un híbrido de 1 y 2, donde en lugar de la configuración de la lista si todos los elementos son enfocables o no, quiero establecer la capacidad de enfoque para un solo elemento en la lista, de modo que el selector pase sin problemas de seleccionar el fila completa para elementos no enfocables y atravesar el árbol de enfoque para elementos que contienen elementos secundarios enfocables.
¿Ningún arrendatario?