J'ai passé environ 6 heures, jusqu'à présent, et frappe, mais rien de barrages routiers. Le principe général est qu'il y a un certain nombre de lignes dans une liste (si elle est générée par la carte, ou ajouté comme une vue d'en-tête) qui contient un EditText un widget et un Bouton. Tout ce que je veux faire est d'être en mesure d'utiliser le jogball/flèches pour naviguer dans le sélecteur d'éléments individuels comme d'habitude, mais quand j'arrive à une ligne particulière, même si j'ai à l'identification explicite de la ligne-qui a un enfant peut recevoir le focus, je veux que l'enfant à prendre le focus au lieu d'indiquer la position du sélecteur.
J'ai essayé beaucoup de possibilités, et n'ont jusqu'à présent pas eu de chance.
mise en page:
<ListView
android:id="@android:id/list"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
/>
Vue d'en-tête:
EditText view = new EditText(this);
listView.addHeaderView(view, null, true);
En supposant que les autres éléments de la carte, à l'aide de la flèche touches permettent de déplacer la sélection vers le haut/vers le bas dans la liste, comme prévu, mais quand arriver à la ligne d'en-tête, il est également affiché avec le sélecteur, et pas moyen de se concentrer dans l'EditText à l'aide de la jogball. Remarque: en appuyant sur le EditText va se concentrer à ce point, cependant, qui s'appuie sur un écran tactile, ce qui ne devrait pas être une exigence.
ListView, apparemment, a deux modes dans ce sujet:
1. setItemsCanFocus(true)
: sélecteur n'est jamais affiché, mais l'EditText pouvez obtenir le focus lorsque l'aide des flèches. L'accent de l'algorithme de recherche est difficile à prévoir, et pas de retour visuel (sur toutes les lignes: avoir focusable enfants ou pas) sur l'élément sélectionné, ce qui peut donner à l'utilisateur une expérience inattendue.
2. setItemsCanFocus(false)
: sélecteur est toujours attiré par les non-touch-mode, et EditText n'arrive pas à se concentrer, même si vous appuyez sur elle.
Pour aggraver les choses, appelant editTextView.requestFocus()
retourne vrai, mais en fait, ne donne pas l'EditText focus.
Ce que je suis en envisageant est en fait un hybride de 1 & 2, où, plutôt que la configuration de la liste si tous les éléments sont focusable ou pas, je veux mettre focalisation pour un seul élément dans la liste, de sorte que le sélecteur de manière transparente les transitions à partir de la sélection de l'ensemble de la ligne de non-focusable éléments, et en parcourant la focalisation de l'arbre pour les articles qui contiennent focusable enfants.
Les élèves?