提问人:ghita 提问时间:5/15/2019 最后编辑:ghita 更新时间:2/28/2020 访问量:5481
HorizontalScrollView 内的 RecyclerView 未显示所有项目
RecyclerView inside HorizontalScrollView not showing all items
问:
我有一个里面的.我没有看到所有物品的内部。我看过,即使适配器中的列表有 7 个项目,也只调用了 4 次!如果我拿出 ,它可以正常工作。RecyclerView
HorizontalScrollView
RecyclerView
onBindViewHolder
HorizontalScrollView
我之所以使用 ,是因为我需要滚动带有回收背景的列表,而不是在回收内部,它通常是如何工作的。HorizontalScrollView
因此,我需要一个解决方案来滚动带有列表背景的列表,或者使用HorizontalScrollView
更新:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="20dp">
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:scrollbars="none"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/label">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<RelativeLayout
android:id="@+id/rlWrapper"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@id/paddingStartView"
android:background="@drawable/bg_round_corner">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/optionsRv"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
app:layout_constraintStart_toStartOf="parent" />
</RelativeLayout>
<View
android:id="@+id/paddingStartView"
android:layout_width="16dp"
android:layout_height="16dp" />
<View
android:id="@+id/paddingEndView"
android:layout_width="16dp"
android:layout_height="16dp"
android:layout_toEndOf="@id/rlWrapper" />
</RelativeLayout>
</HorizontalScrollView>
<TextView
android:id="@+id/label"
style="@style/FontLocalizedMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:textAllCaps="true"
android:textColor="#979797"
android:textSize="12sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Tempareature" />
</androidx.constraintlayout.widget.ConstraintLayout>
答:
onBindViewHolder
仅对“在屏幕上可见”项目调用。如果总项目为 7 并且屏幕只能显示 4,则一切正常。
因此得名“RecycleView”,它回收可见视图,您的视图中总共有 4 个视图RecycleView
这个我不明白你的意思!?
我使用 HorizontalScrollView,因为我需要滚动列表 来自回收的背景,而不是回收内部的背景,它通常是如何工作的。
因此,我需要一个解决方案来滚动带有 列表,或使用 HorizontalScrollView 显示所有项
使 的子项 成为 而不是HorizontalScrollView
RelativeLayout
LinearLayout
评论
recycleView
我也遇到了这个问题,接受的答案有所帮助。我有:
<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
评论