我在 HorizontalScrollView 中有一个 RecycleView 。我没有在 RecycleView 中看到所有项目。我看过了,即使适配器中的列表有7个项目, onBindViewHolder 也仅被调用4次!如果我取出 HorizontalScrollView ,就可以了。
我使用 HorizontalScrollView ,因为我需要在回收的背景下滚动列表,而不是在回收内滚动它通常的工作方式。
因此,我需要一种解决方案来用列表的背景滚动列表,或使用 HorizontalScrollView
显示所有项目答案 0 :(得分:3)
使HorizontalScrollView
的孩子成为RelativeLayout
而不是LinearLayout
答案 1 :(得分:1)
我也遇到了这个问题,被接受的答案有所帮助。我有:
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="none"
android:fillViewport="true">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/dates_recycler"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</HorizontalScrollView>
,并且没有在水平方向的回收器视图中显示所有项目。它仅显示了足以适合设备视图宽度的项目,多次调用onBindViewHolder
等。在RelativeLayout
和HorizontalScrollView
之间添加了RecyclerView
修复它,以便它显示所有项目,无论它们是否适合设备的整个宽度,您都可以滚动找到它们。
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="none"
android:fillViewport="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/dates_recycler"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</androidx.recyclerview.widget.RecyclerView>
</RelativeLayout>
</HorizontalScrollView>
我认为还将android:layout_width="match_parent"
设置为RelativeLayout
是关键。
答案 2 :(得分:0)
onBindViewHolder
仅用于“屏幕上可见”项。如果项目总数为7,并且屏幕只能显示4,则一切正常。
因此名称为“ RecycleView”,它回收可见视图,RecycleView
中总共只有4个视图
这我不明白你的意思!?
我使用HorizontalScrollView是因为我需要使用 回收的背景,而不是回收的背景,通常是这样工作的。
因此,我需要一种解决方案来滚动列表的背景 列表,或使用HorizontalScrollView显示所有项目