android:layout_height不适用于CardView

时间:2015-01-03 19:03:09

标签: android android-cardview

我正在使用GridLayoutManager在RecyclerView中使用CardViews。我面临的问题是,我为xml或java中的卡片视图指定的高度,它不会被CardView强制执行。似乎CardView的子视图的累积高度成为CardView的高度。考虑到它的子视图强制执行父级布局参数的事实,这种行为。

我错过了什么?我做错了吗?

<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:card_view="http://schemas.android.com/apk/res-auto"
    android:id="@+id/cardView"
    android:layout_width="@dimen/card_view_width"
    android:layout_height="0dp"
    android:layout_marginBottom="6dp"
    android:elevation="10dp"
    android:orientation="horizontal"
    card_view:cardCornerRadius="2dp"

    >

<ImageView
 android:layout_width="@dimen/card_view_width"
    android:layout_height="10dp"
></ImageView>

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

在这种情况下,卡片视图的高度为0dp,但仍然是布局设计师预览&amp;当应用程序在设备上运行时,卡的大小为10dp。

最好的问候

3 个答案:

答案 0 :(得分:1)

您对该计划所说的内容有什么期望?

您告诉CardVeiw身高0dp:     机器人:layout_height =&#34; 0dp&#34;

然后在ImageView内放置10dp,告诉它高度为CardView

当然,ImageView使CardView更适合让layout_height更合适。

如果您希望内部元素与CardView的高度相匹配,请将20dp的{​​{1}}设置为您想要的任何内容,例如android:layout_height="20dp"

match_parent

然后有内部元素android:layout_height="match_parent"

{{1}}

答案 1 :(得分:0)

为什么要将可见性设置为0?如果您试图隐藏它,请使用`visibility = View.GONE&#39;。

另外,请不要使用{L = L}之前无法工作的elevation,使用cardElevation以便在L之前也可以使用。

答案 2 :(得分:0)

尝试在CardView中设置 android:layout_height =“wrap_content”