У меня есть вертикальное представление переработчика, в котором хранятся горизонтальные представления переработчика (использование GridLayout не подходит для моего решения), и большую часть времени пользователю отображается только одно горизонтальное представление переработчика, и для того, чтобы он мог переключиться на следующий, в методе onKeyDown я улавливаю события нажатия на DPAD (приложение Android TV) и управляю поведением фокуса.
Но когда я включаю двустороннюю связь, события нажатия на удаленное управление не переходит в обработчик DPAD, а переходит непосредственно в AccessibilityService, и это означает, что мое приложение не будет получать события в onKeyDown/
, а управление фокусом полностью переходит к AccessibilityService, а он в свою очередь видит только один доступный на экране горизонтальный вид ресайклера и не может переключиться на другой горизонтальный вид ресайклера.
Я пытался решить проблему через AccessibilityTraversalAfter/
, но это не помогло, так как данное решение подходит только для сенсорных устройств, а для управления DPAD есть не только After/Before (Left/Right), но и Up/Down
Я также пробовал отслеживать события в onInitializeAccessibilityEvent, но мне не удалось узнать, где пользователь нажимал на пульте дистанционного управления.
Подробнее здесь:
https://stackoverflow.com/questions/787 ... r-talkback