我正在尝试在 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>
答案 0 :(得分:11)
您应该使用NestedScrollView代替。但是,您可能需要编写自己的LayoutManager。有关详细信息,请查看此SO Answer
答案 1 :(得分:4)
您需要使用自定义布局管理器在scrollview中使用recyclerview。
您可以删除滚动视图,并在垂直Recyclerview中创建包含水平回收视图的标题项。
此外,您不应在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上充当嵌套滚动父级和子级。默认情况下启用嵌套滚动。