CardView 忽略 android:clipChildren="false"

CardView ignoring android:clipChildren="false"

我想要一个 CardView,其中包含一个与 CardView 的左边框重叠的 ImageView。 我想通过给 ImageView 一个负边距来做到这一点。 通过设置 clipChildren="false".

这适用于所有其他布局 (LinearLayout/RelativeLayout/FrameLayout)

但是我无法让它与 CardView 一起使用。 ImageView 将被剪裁并且不会与 CardView 重叠。

<android.support.v7.widget.CardView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="15dp"
        android:clipChildren="false">
    <ImageView
           android:layout_marginLeft="-10dp"
           android:background="@drawable/some_picture"
           android:layout_width="50dp"
           android:layout_height="50dp"/>
</android.support.v7.widget.CardView>

好的,这个好像只有Android 5+才有问题,解决方法是设置

cardView.setClipToOutline(false);

来源 - https://www.reddit.com/r/androiddev/comments/2tccge/cant_draw_outside_of_cardview_parent/

用参数 LinearLayout

将其包装在 LinearLayout
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false">

<android.support.v7.widget.CardView/>

</LinearLayout>

添加:

android:clipChildren="false" 

致 CardView 的祖父 View。

将此添加到您的 MaterialCardView xml 文件

android:outlineProvider="none"