NestedScrollView内的多个水平RecyclerView窃取焦点

时间:2017-08-11 06:17:06

标签: android android-recyclerview android-tv

其实我目前正在为AndroidTV应用程序工作。我在RecyclerView内从右到左有多个横向NestedScrollView,就像那张图片一样。

问题是,当我向左滚动更多时,焦点移动到不同的列表或不同的视图,这是不好的。

我不希望重点改变。如果列表到达结尾,则焦点应保持在相同位置。

我试过了:

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

但它不起作用..

任何人都可以帮助我吗?

enter image description here

未解决

2 个答案:

答案 0 :(得分:0)

尝试将ScrollView更改为NestedScrollView。这背后的原因是

**NestedScrollView**
  

NestedScrollView就像ScrollView,但它支持表现为   新旧版本上的嵌套滚动父级和子级   Android版默认情况下启用嵌套滚动。

**ScrollView**
  

可以通过滚动的视图层次结构的布局容器   用户,允许它大于物理显示。一个ScrollView   是一个FrameLayout,意味着你应该在其中放置一个子包含   滚动的全部内容;这个孩子本身可能是一个布局   具有复杂对象层次结构的经理

这将帮助您确定正在聚焦的布局。

答案 1 :(得分:0)

您可以使用以下结构进行嵌套滚动

<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>

我希望这会有所帮助!