如何在Scrollview中使用Recyclerview

时间:2015-12-16 14:34:16

标签: android android-recyclerview android-scrollview

我正在尝试在 ScrollView

中显示水平回收视图项目和垂直回收视图项目

Scrollview无法工作,即使我使用android:fillViewport =“true”

  <ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">
    //Horizontal Recyclerview items
    <RecyclerView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    </RecyclerView>
    //vertical Recyclerview items
        <RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"></RecyclerView>
    </LinearLayout>

</ScrollView>

3 个答案:

答案 0 :(得分:11)

您应该使用NestedScrollView代替。但是,您可能需要编写自己的LayoutManager。有关详细信息,请查看此SO Answer

答案 1 :(得分:4)

  1. 您需要使用自定义布局管理器在scrollview中使用recyclerview。

  2. 您可以删除滚动视图,并在垂直Recyclerview中创建包含水平回收视图的标题项。

  3. 此外,您不应在scrollview中使用recyclerview。所以认为第二种方法会更好。

    您也可以使用Snap-RecyclerView-Utils。 它在滚动视图中有一个用于recyclerview的线性布局管理器和一个适配器,可以帮助您制作包含水平回收视图的标题。

答案 2 :(得分:2)

ScrollView只能有一个孩子 删除RelativeLayout,然后重试。

除了android:layout_height中的ScrollView应该设置为wrap_content

此外,我不太确定,如果它有效,因为在Docs中声明

  

你永远不应该使用带有ListView的ScrollView,因为ListView负责自己的垂直滚动。最重要的是,这样做会使ListView中的所有重要优化都无法处理大型列表,因为它有效地强制ListView显示其整个项目列表以填充ScrollView提供的无限容器。

也许NestedScrollView可以使用,因为它适用于

  

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