如何修复 Android 中 CardView 底部的意外白线

How to fix unexpected white line in bottom of CardView in Android

我有一个像这样的CardView,但是底部不应该有的地方有一条白线。知道是什么原因造成的吗?

这是代码!

   <android.support.v7.widget.CardView
        android:id="@+id/card_view"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="5"
        app:cardCornerRadius="4dp"
        android:layout_margin="5dp">
        <ListView
            android:id="@+id/home_list_listview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:divider="@null"
            android:dividerHeight="0dp"
            android:drawSelectorOnTop="true"
            android:orientation="vertical"
            tools:listitem="@layout/home_list_item"/>
    </android.support.v7.widget.CardView>

I am programmatically setting the height of each element in the listview. So the list view's total height / 4. I'm guessing the issue is that when the listview's pixel count isn't evenly divisible by 4, I have an extra 1-2 pixels that don't get colored.

同意。

我建议不要使用 ListView,而是只使用四行作为垂直视图 LinearLayout,每行的权重为 1 以平均划分 space。

或者,调整您的尺寸计算以将剩余像素考虑在内,根据需要将它们分配给行。

我认为该行是 CardView 兼容的错误。如果将 cardCornerRadius 设置为 0dp,那条线就会消失。此问题仅发生在 api <21.