Горизонтальный recyclerview в tv dpad фокус, идущий циклически на быстрый прокрутка

103
12

Я использую горизонтальный recyclerview в моем проекте tv. Я устанавливаю фокусирующийся для элемента просмотра recycler. Так с d pad, я могу двигаться. Когда я делаю обычный ключ, все работает отлично. Но когда я пытаюсь сделать быстрый прокрутка с помощью dpad после того, как фокус достигнет последнего видимого дочернего фокуса, перемещаясь к первому элементу, и произойдет циклическое изменение фокуса. Я увидел некоторые обходные пути, но для меня ничего не работает.

спросил(а) 2021-01-19T17:35:28+03:00 9 месяцев, 1 неделя назад
1
Решение
65

Расширьте свой менеджер макетов и добавьте нижеприведенный фрагмент

@Override
public View onInterceptFocusSearch(View focused, int direction) {
if (this.getOrientation() == HORIZONTAL) {
if (direction == View.FOCUS_RIGHT) {
View view = getChildAt(getChildCount() - 1);
if (view == focused)
return focused;
}
}
else if(getOrientation() == VERTICAL){
if (direction == View.FOCUS_DOWN) {
View view = getChildAt(getChildCount() - 1);
if (view == focused)
return focused;
}
}
return super.onInterceptFocusSearch(focused, direction);
}

Основываясь на ориентации, я занимаюсь правильным фокусом и фокусом. Вы можете редактировать, исходя из ваших потребностей.

ответил(а) 2021-01-19T17:35:28+03:00 9 месяцев, 1 неделя назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема