Скажем, у меня есть настраиваемая ViewGroup, которая является настраиваемой и имеет некоторые дочерние представления, которые также могут быть сфокусированы (пользовательское вертикальное меню для Android-приставки, которое должно реагировать на пульте дистанционного управления).
Мне нужно передать фокус некоторым дочерним представлениям, когда пользовательская группа ViewGroup получает фокус.
Я установил descendantFocusability
в beforeDescendants
и установил OnFocusChangeListener
в пользовательскую ViewGroup, но OnFocusChangeListener.onFocusChanged()
никогда не вызывается. Похоже, что beforeDescendants
работает не так, как я ожидал. Фактически установка beforeDescendants
работает так же, как установка afterDescendants
. Фокус берется с помощью ближайшего дочернего вида, а пользовательская ViewGroup не имеет возможности решить, какой дочерний вид должен делать фокус.
Как я могу достичь желаемого поведения? Каковы наилучшие методы обработки фокусов в ViewGroup
s?