我正在尝试为RecyclerView的每个单元格添加边框/框架。我能够通过创建“可绘制资源文件”并将其设置为单元格的背景来成功实现这一目标,如下所示:
然而,我意识到这样做,在页面中创建额外的透支并导致性能滞后。所以我尝试将所有布局背景颜色设置为 @null 以避免额外的透支,但我没有成功。你可以比较下面的两个透支(第一张图片有框架,第二图片有没有框架):
使用框架透支:
以下是可绘制资源文件的xml代码。我将此布局设置为RecyclerView Cell的背景。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape>
<stroke
android:width="0.25dp"
android:color="#000000" />
<corners
android:bottomLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topLeftRadius="5dp"
android:topRightRadius="5dp"/>
<solid
android:color="@null" />
</shape>
</item>
</selector>
请帮我解决这个透支问题。此外,如果您知道为单元格创建框架/边框的任何其他方法,而不创建额外的透支,我感谢您与我分享。
答案 0 :(得分:1)
我建议使用CardView
代替RecyclerView
,以便您可以像这样设置app:cardPreventCornerOverlap="false"
:
<android.support.v7.widget.CardView
android:id="@+id/card_view"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:cardCornerRadius="2dp"
app:cardElevation="2dp"
app:cardPreventCornerOverlap="false"
app:contentPadding="0dp">
</android.support.v7.widget.CardView>