我有一个 RecyclerView,其中包含一个项目列表,该列表占用的空间比屏幕提供的空间更多,并且我需要为整个列表添加背景。背景应扩展到整个列表大小,即背景应在开始时部分显示,滚动时您应该看到背景的其余部分。当我使用可绘制项目设置 RecyclerView 的背景属性时,它只会扩展到可见部分。
有没有办法让它扩展到整个RecyclerView上?
解决方案:
我尝试了答案和评论中的建议:
将 RecyclerView 包装在布局中并将可绘制对象提供给外部布局仍然仅在列表的可见部分上具有背景。
将项目放入作为 NestedScrollView 子级的 LinearLayout 中是可行的。
经过几次尝试和错误后,我找到了另一个解决方案:将 RecyclerView 包装在 FrameLayout(或可能任何其他布局)中,并将其包装在 NestedScrollView 中:
<androidx.core.widget.NestedScrollView
android:layout_width="150dp"
android:layout_height="0dp">
<FrameLayout
android:background="@drawable/my_drawable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/my_recycler_view"
android:layout_width="150dp"
android:layout_height="wrap_content" />
</FrameLayout>
</androidx.core.widget.NestedScrollView>
尝试在 XML 中包含 RecyclerView 的父布局上设置背景:
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/your_background">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/recyclerView"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>