Как мне назначить правильное направление фокуса a11y для TalkBack?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как мне назначить правильное направление фокуса a11y для TalkBack?

Сообщение Anonymous »

У меня есть вертикальное представление переработчика, в котором хранятся горизонтальные представления переработчика (использование GridLayout не подходит для моего решения), и большую часть времени пользователю отображается только одно горизонтальное представление переработчика, и для того, чтобы он мог переключиться на следующий, в методе onKeyDown я улавливаю события нажатия на DPAD (приложение Android TV) и управляю поведением фокуса.
Но когда я включаю двустороннюю связь, события нажатия на удаленное управление не переходит в обработчик DPAD, а переходит непосредственно в AccessibilityService, и это означает, что мое приложение не будет получать события в onKeyDown/, а управление фокусом полностью переходит к AccessibilityService, а он в свою очередь видит только один доступный на экране горизонтальный вид ресайклера и не может переключиться на другой горизонтальный вид ресайклера.
Я пытался решить проблему через AccessibilityTraversalAfter/

Код: Выделить всё

AccessibilityTraversalBefore
, но это не помогло, так как данное решение подходит только для сенсорных устройств, а для управления DPAD есть не только After/Before (Left/Right), но и Up/Down
Я также пробовал отслеживать события в onInitializeAccessibilityEvent, но мне не удалось узнать, где пользователь нажимал на пульте дистанционного управления.

Подробнее здесь: https://stackoverflow.com/questions/787 ... r-talkback
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»