这个问题实际上与“ Nested Recycler view height doesn't wrap its content”相同,但针对水平RecyclerView
。
我有一个RecyclerView
嵌套在两个ScrollView
中。我希望RecyclerView
布置所有项目(出于我的目的是必需的),并让ScrollView
来处理滚动。因此,我将RecyclerView
的宽度和高度设置为wrap_content
,并将nestedScrollingEnabled
设置为false。
<androidx.core.widget.NestedScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/vscroll"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<HorizontalScrollView
android:id="@+id/hscroll"
android:layout_width="match_parent"
android:layout_height="match_parent">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:nestedScrollingEnabled="false"/>
</HorizontalScrollView>
</androidx.core.widget.NestedScrollView>
recyclerView.isNestedScrollingEnabled = false
recyclerView.layoutManager = LinearLayoutManager(recyclerView.context, HORIZONTAL, false)
如果RecyclerView
的方向是垂直的,则此方法正常工作。但是我希望RecyclerView可以水平排列项目。但是,如果将LinearLayoutManager
设置为水平,即使RecyclerView
的宽度设置为wrap_content
,它也只能渲染屏幕上的内容,而不是整个宽度!它也不会触发在水平滚动上拉出新项目(我想是因为滚动是由ScrollView
处理的)。
这是RecyclerView
库中的错误吗?还是因为HorizontalScrollView
与嵌套的RecyclerView
不能像(垂直)NestedScrollView
一样好玩而发生?我需要类似NestedHorizontalScrollView
的东西吗?我在做错什么吗?