Intereting Posts
Невозможно решить метод setLatestEventInfo NoClassDefFondError в Android … но класс находится в одной банке, включенной в путь класса После обновления AS до 1.0, получение «идентификатора метода не в : 65536» ошибка в проекте Перенос приложений на SD-карту Когда появляется мягкая клавиатура, это делает поле EditText потерянным фокусом BroadcastReceiver для местоположения Маршрутизация аудио в Bluetooth-гарнитуру (не A2DP) на Android Android – воспроизведение звука с динамика Установите ориентацию телефона, но установите ориентацию экрана на портрет Как протестировать IntentService с помощью Robolectric? Почему я получил сообщение об отключенном эмуляторе-5554 Свертывание панели инструментов и вложенного scrollview не прокручивается плавно Android Присоединение файла к GMAIL – Не удается подключить пустой файл Прослушать хроном пользовательский вкладку Динамический список, добавляющий «Загрузить больше элементов» в конце прокрутки

Android TV RecyclerView фокусное взаимодействие

В настоящее время я использую обычный RecyclerView с GridLayoutManager с различными параметрами spanCount относящимися к viewType для приложения Android TV. Все работает прилично, но у меня есть 2 вопроса:

  1. Если вы долгое время нажимаете кнопку dpad вниз, чтобы быстро прокручиваться между элементами, иногда фокус теряется для представления, которое не является дочерним элементом RecyclerView.
  2. Как я могу заставить RecyclerView сохранить текущий сфокусированный вид в центре сетки?

Похоже, что перечисленные проблемы фиксируются с помощью VerticalGridView из библиотеки LeanBack но используемый LayoutManger является внутренним и не поддерживает spanCount .

Solutions Collecting From Web of "Android TV RecyclerView фокусное взаимодействие"

Вы можете попробовать проверить этот способ обхода проблемы с RecycleView фокуса RecycleView при навигации с помощью d-pad.

Вот этот вопрос .

Проблема здесь в том, что GridLayoutManager использует реализацию onFocusSearchFailed() которая вызывается, когда фокус приближается к внутренней границе RecyclerView . LinearLayoutManager's просто предлагает элемент first / last (зависит от направления прокрутки). Следовательно, фокус переходит к первому / последнему элементу новой строки.

Итак, возможно, это решение поможет решить вашу проблему или дать вам представление о том, как решить вашу проблему.