Подтвердить что ты не робот

Несколько горизонтальных RecyclerView внутри NestedScrollView воруют фокус

На самом деле я сейчас работаю над AndroidTV-приложением. У меня есть несколько горизонтальных RecyclerView справа налево внутри NestedScrollView, подобных этому изображению.

Проблема в том, что когда я прокручиваю больше влево, фокус перемещается в другой список или другой вид, который не является хорошим.

Я не хочу, чтобы фокус менялся. Если список достигнет конца, тогда фокус должен оставаться в том же положении.

Я пробовал:

android:descendantFocusability="blocksDescendants"
android:focusableInTouchMode="true" //in parent layout

Но это не сработало.

Может ли кто-нибудь помочь мне?

введите описание изображения здесь

Не удалось

4b9b3361

Ответ 1

Попробуйте изменить ScrollView на NestedScrollView. Причиной этого является

**NestedScrollView**

NestedScrollView похож на ScrollView, но поддерживает как вложенные прокручивающие родительские и дочерние элементы как в новой, так и в старой версиях Android. Вложенная прокрутка включена по умолчанию.

**ScrollView**

Контейнер компоновки для иерархии представлений, которая может быть прокручена пользователь, позволяя ему быть больше физического дисплея. ScrollView это FrameLayout, что означает, что вы должны помещать в него один ребенок, содержащий все содержимое для прокрутки; этот ребенок сам может быть макетом менеджер со сложной иерархией объектов

Это поможет вам определить, какой макет фокусируется.

Ответ 2

Вы можете использовать нижнюю структуру для вложенного прокрутки

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/white"
    android:clickable="false"
    android:orientation="vertical">

    <android.support.v4.widget.NestedScrollView
        android:id="@+id/scroll_search_all"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <android.support.v7.widget.RecyclerView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:isScrollContainer="false"
                    android:nestedScrollingEnabled="false" />

            </LinearLayout>

            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">

                <android.support.v7.widget.RecyclerView
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:isScrollContainer="false"
                    android:nestedScrollingEnabled="false" />

            </LinearLayout>
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
</FrameLayout>

Надеюсь, это поможет!