Diciamo che ho un ViewGroup personalizzato che è focalizzabile e ha alcune viste secondarie che sono anche attivabili (un menu verticale personalizzato per set-top-box Android che dovrebbe reagire sul telecomando).Gestione del focus di ViewGroup personalizzato
Ho bisogno di passare lo stato attivo ad alcune delle viste figlio ogni volta che il ViewGroup personalizzato acquisisce lo stato attivo.
Impostare descendantFocusability
su beforeDescendants
e impostare OnFocusChangeListener
nel ViewGroup personalizzato ma non viene mai chiamato OnFocusChangeListener.onFocusChanged()
. Sembra che beforeDescendants
non funzioni come mi aspettavo. L'impostazione effettiva di beforeDescendants
è la stessa dell'impostazione di afterDescendants
: lo stato attivo viene preso dalla vista secondaria più vicina e il ViewGroup personalizzato non ha l'opportunità di decidere quale vista secondaria deve essere focalizzata.
Come posso ottenere il comportamento desiderato? Quali sono le migliori pratiche per la gestione dei focus in ViewGroup
s?
Hai trovato una soluzione al tuo problema? Sto cercando una soluzione per un problema simile. Voglio sapere quando il ViewGroup "perde" lo stato attivo, cioè nessuna vista figlio ha lo stato attivo. – AlanKley
@AlanKley Ci scusiamo per la risposta tardiva ... sfortunatamente non ho trovato alcuna soluzione per questo. Ho "risolto" questo impostando OnFocusChangeListener su tutti i figli di ViewGroup e ho la logica (di cui il bambino dovrebbe mettere a fuoco) all'interno del listener ... Se trovi qualche soluzione, sentiti libero di scriverla qui :) – traninho