#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, и в этом случае я мог вручную перейти к целевому представлению.