如何为整个RecyclerView设置背景而非仅可见区域?
问题
我有一个RecyclerView,其列表项总占用空间超出屏幕显示范围,需要为整个列表设置背景。该背景需扩展至整个列表的尺寸——初始仅显示部分背景,滚动时可查看剩余内容。但直接为RecyclerView的background属性设置drawable资源时,背景仅覆盖可见区域,有没有办法让背景覆盖整个RecyclerView?
解决方案
我尝试了几种方案,整理如下:
- 将RecyclerView包裹在普通布局中并为外层布局设置drawable,背景仍仅覆盖列表可见区域,此方法无效。
- 将列表项放入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="match_parent" android:layout_height="wrap_content" /> </FrameLayout> </androidx.core.widget.NestedScrollView>
内容的提问来源于stack exchange,提问作者user20958695
相关产品推荐
相关产品推荐

