Я работаю над проектом для Android TV, уникальной особенностью этой платформы является то, что пользователь перемещает фокус по экрану с помощью пульта дистанционного управления.
Вот экран :
При работе с фокусом есть две основные задачи:
При навигации слева направо и наоборот фокус не должен путать позиции . Например, если пользователь щелкнет вправо от левой панели 0 -> Правая панель 0, затем перейдет к правой панели 2, а затем щелкнет влево, фокус должен вернуться на левую панель 0. потому что пользователь переместил фокус с левой панели на правую. Эта функциональность была реализована с помощью focusRestorer и уже работает.
Когда пользователь нажимает на элемент на правой панели (например, , Правая панель 1), откроется второй экран. Когда пользователь нажимает кнопку «Назад» и возвращается к первому экрану, ожидается, что фокус будет на кнопке, открывшей экран, то есть на правой панели 1. Однако по какой-то причине это работает только в 30 % случаев, и вместо фокусировки на ожидаемой кнопке фокусируется другая кнопка.
Я работаю над проектом для Android TV, уникальной особенностью этой платформы является то, что пользователь перемещает фокус по экрану с помощью пульта дистанционного управления. Вот экран : [img]https://i.sstatic.net/rg6vS0kZ.png[/img]
При работе с фокусом есть две основные задачи: [list] [*]При навигации слева направо и наоборот фокус не должен путать позиции . Например, если пользователь щелкнет вправо от левой панели 0 -> Правая панель 0, затем перейдет к правой панели 2, а затем щелкнет влево, фокус должен вернуться на левую панель 0. потому что пользователь переместил фокус с левой панели на правую. Эта функциональность была реализована с помощью focusRestorer и уже работает.
[*]Когда пользователь нажимает на элемент на правой панели (например, , Правая панель 1), откроется второй экран. Когда пользователь нажимает кнопку «Назад» и возвращается к первому экрану, ожидается, что фокус будет на кнопке, открывшей экран, то есть на правой панели 1. Однако по какой-то причине это работает только в 30 % случаев, и вместо фокусировки на ожидаемой кнопке фокусируется другая кнопка.
[/list] ScreenRecord -> https://drive.google.com/file/d/1NCal4kxx0op74-Yj5v00wOBcnCRSSlUb/view Есть готовый код: [code]private const val FIRST_SCREEN_ROUTE = "first_screen" private const val SECOND_SCREEN_ROUTE = "second_screen" private const val DEFAULT_FOCUS_POSITION = -1