Android 在棒棒糖前的设备上使用CardView的空白区域

Android 在棒棒糖前的设备上使用CardView的空白区域,android,material-design,android-cardview,Android,Material Design,Android Cardview,我试图在应用程序的某些视图中添加舍入和阴影,并利用卡片视图库来实现这一点。它在棒棒糖设备上看起来不错,但我遇到了与任何棒棒糖前产品的兼容性问题 首先,我要说的是,我已经查看了以下问题的答案,但发现没有一个对我有用 最流行的答案是添加属性“cardPreventOverlap=false”,但这会删除圆角。我尝试过这个标志和“cardUseCompatPadding=”true“的变体,但它们似乎都没有奏效。还有其他人遇到过同样的问题吗 我的代码: <android.support

我试图在应用程序的某些视图中添加舍入和阴影,并利用卡片视图库来实现这一点。它在棒棒糖设备上看起来不错,但我遇到了与任何棒棒糖前产品的兼容性问题

首先,我要说的是,我已经查看了以下问题的答案,但发现没有一个对我有用

最流行的答案是添加属性“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>

4.4.2中的代码显示为:

使用“cardPreventOverlap=false”时:


更新不幸的是,我们无法解决该问题;考虑到该应用程序只有很小的安装基础pre5.0,我们认为这并不重要。最后,我们使用了第三个选项“cardPreventOverlap=false”。

而不是使用
card\u view:cardCornerRadius
您可以使用
可绘制的
设置cardview的
背景

<?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>
例如,您的+按钮


将其与
cardUseCompatPadding=“true”

内容剪辑结合使用不受支持,因为在较旧的设备上,内容剪辑非常昂贵。如果你愿意,你可以使用。它有自己的CardView实现,可以正确地将内容剪辑到圆角。Carbon还为所有其他布局添加内容剪辑和立面,因此,出于您的目的,您可以使用带有圆角和阴影的线性布局。如图所示:


恐怕这不会让它看起来有什么不同。如果每个元素都是一个形状,那么“是”更改每个形状上的角并使用cardPreventCornerOverlap=“false”将起作用,但是在我需要它的某些位置也有图像和其他视图,我无法更改这些角。但是您可以将其放在
线性布局上
否?使用透明背景色和负片填充也可以,因为改变线性布局的背景不会影响其子级。正方形的孩子们仍然会被放在左上角,以覆盖线性布局的背景;我也希望孩子们都是圆的,所有的孩子都是用棒棒糖圆的。
<corners 
    android:topLeftRadius="4dp"
    android:bottomLeftRadius="4dp"/>