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