Android TV 7.1.1 проблема с фокусом для навигации

#android #kotlin #focus #android-tv

Вопрос:

Похоже, что с фокусом на Android TV 7.1.1 возникла проблема, которая имеет решающее значение для навигации в моем телевизионном приложении. Проблема исчезла, начиная с Android 8.0.

Чтобы устранить проблему, я распечатал журналы, чтобы проверить, какое представление в настоящее время находится в центре внимания. Результаты очевидны: нет сфокусированного представления, даже после вызова requestFocus() нужного представления в a post{} или в onResume . Я также пробовал с targetView.parent.requestChildFocus(...) . => В Android TV 7.1.1 во всех случаях > activity.currentFocus вернет значение null, но, начиная с Android TV 8.0, он вернет целевое представление.

Я включил опцию «показывать границы макета» (в настройках разработчика), и я замечаю, что нет «креста», чтобы показать, какой вид имеет фокус, но мне сказали, что это функция, которая была доступна позже (возможно, с Android 8.0? Может ли это быть как-то связано?). Таким образом, нет никакого способа узнать, есть ли или даже есть ли представление с фокусом.

Наконец, чтобы это сработало, мне пришлось прибегнуть к программе чтения с экрана, такой как Talkback, и в этом случае я мог вручную перейти к целевому представлению.