即使在给出match_parent之后,Card View内部的相对布局也没有填充父级

时间:2018-01-23 05:54:11

标签: android android-layout

我有一个cardView布局如下。我用Stetho来检查chrome中的布局。我可以看到线性布局正在填充屏幕宽度。但是,相对布局未填充父级。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/card_view_show_card"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="4dp"
    android:clickable="true"
    android:elevation="100dp"
    android:focusable="true"
    android:foreground="?android:attr/selectableItemBackground">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <RelativeLayout
            android:id="@+id/image_layout_show_card"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">



                <FrameLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <ImageView
                        android:id="@+id/image_view_show_card"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:scaleType="fitXY" />

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" />
                </FrameLayout>


        </RelativeLayout>

 </LinearLayout>


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

2 个答案:

答案 0 :(得分:0)

相对布局填充父级。尝试应用不同的布局来证明它。像这样......         

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#3367bb"
            android:orientation="vertical">

            <RelativeLayout
                android:id="@+id/image_layout_show_card"
                android:layout_width="match_parent"
                android:background="#000000"
                android:layout_height="wrap_content">



                <FrameLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent">

                    <ImageView
                        android:id="@+id/image_view_show_card"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:scaleType="fitXY" />

                    <View
                        android:layout_width="match_parent"
                        android:layout_height="match_parent" />
                </FrameLayout>


            </RelativeLayout>

        </LinearLayout>


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

您将看到完整的布局变为黑色,这意味着它覆盖了父级。 如果删除相对布局的背景颜色,您将看到线性布局的蓝色。 如果问题不是其他问题,请提出新问题

答案 1 :(得分:0)

解决方案是将其添加到CardView中: app:cardPreventCornerOverlap="false"