在预棒棒糖设备上使用CardView的白色空间

Rob*_*sey 6 android material-design android-cardview

我试图在应用程序的某些视图上添加舍入和阴影,并利用卡片视图库来实现这一点.它在棒棒糖设备上看起来很好,但是在与棒棒糖之前的任何事情都遇到兼容性问题.

我将在序言中说我已经查看了下面问题中的答案,发现它们都没有为我工作.

最流行的答案是添加属性'cardPreventOverlap = false',但这会删除圆角.我已经尝试过这个标志的变种和'cardUseCompatPadding ="true"',但它们似乎都没有做到这一点.有没有其他人遇到同样的问题?

我的代码:

<android.support.v7.widget.CardView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginBottom="8dp"
    card_view:cardCornerRadius="4dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/selector"
        android:gravity="center"
        android:orientation="horizontal" >

        <ImageView
            android:layout_width="44dp"
            android:layout_height="match_parent"
            android:layout_marginRight="4dp"
            android:background="@color/mid_yellow"
            android:padding="0dp"
            android:src="@drawable/ic_add_white_24dp" />

        <TextView
            style="@style/Text.Primary.White"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="4dp"
            android:text="Button" />
    </LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是它目前在Android 5.0上的外观:

在此输入图像描述

4.4.2上完全相同的代码显示为:

在此输入图像描述

使用'cardPreventOverlap = false':

在此输入图像描述

更新很遗憾我们无法解决问题; 鉴于应用程序只有较小的安装基础pre5.0,我们认为它并不重要.我们最终选择了第三个选项'cardPreventOverlap = false'.

Bas*_*ein 0

除了使用之外,card_view:cardCornerRadius您还可以使用以下方法设置background卡片视图drawable

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#FFFFFF"/>
    <corners android:radius="4dip"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

您还可以对每个元素执行此操作cardview,以便为每个元素提供正确的背景颜色。在这种情况下,您可以仅指定某些角:

<corners 
    android:topLeftRadius="4dp"
    android:bottomLeftRadius="4dp"/>
Run Code Online (Sandbox Code Playgroud)

例如,对于您的+按钮。

结合使用它cardUseCompatPadding="true"