CardView игнорирует android:clipChildren= " false"

Я хочу иметь CardView, который содержит ImageView, который перекрывает левую границу CardView. Я хочу сделать это, предоставив ImageView отрицательный запас. Это отлично работает со всеми другими макетами (LinearLayout / RelativeLayout / FrameLayout), установив clipChildren="false".

однако я не могу заставить его работать с 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>

2 ответов


Ok, это, кажется, проблема только с 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>