Horizo​​ntalScrollView内部的RecycleView未显示所有项目

时间:2019-05-14 17:32:17

标签: android android-recyclerview recycler-adapter horizontalscrollview

我在 Horizo​​ntalScrollView 中有一个 RecycleView 。我没有在 RecycleView 中看到所有项目。我看过了,即使适配器中的列表有7个项目, onBindViewHolder 也仅被调用4次!如果我取出 Horizo​​ntalScrollView ,就可以了。

我使用 Horizo​​ntalScrollView ,因为我需要在回收的背景下滚动列表,而不是在回收内滚动它通常的工作方式。

enter image description here

因此,我需要一种解决方案来用列表的背景滚动列表,或使用 Horizo​​ntalScrollView

显示所有项目

3 个答案:

答案 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等。在RelativeLayoutHorizontalScrollView之间添加了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个视图

这我不明白你的意思!?

  

我使用Horizo​​ntalScrollView是因为我需要使用   回收的背景,而不是回收的背景,通常是这样工作的。

     

因此,我需要一种解决方案来滚动列表的背景   列表,或使用Horizo​​ntalScrollView显示所有项目