CardView的android:layout_height属性无效

5
我正在使用GridLayoutManager在RecyclerView中使用CardView。我遇到的问题是,我在xml或java中指定的卡片视图高度并没有被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,但是在布局设计器预览和应用程序运行时,卡片的大小为10dp。
此致敬礼。

有人可以帮忙吗? - Umer Farooq
3个回答

1
你希望程序做什么,根据你的指示,你告诉 CardView 高度为 0dp: android:layout_height="0dp"
然后你放置一个 ImageView ,并告诉它高度为 10dp
所以,CardView 会自行变高,以便适应 ImageView 的大小。
如果你想让内部元素与 CardView 的高度匹配,请将 CardViewlayout_height 设置为所需高度,例如 20dp
android:layout_height="20dp"

然后让内部元素保持match_parent
android:layout_height="match_parent"

我已经尝试过使用match_parent,但没有成功。此外,我无法完全避免数字,在某些视图中,我必须使用上下边距,并将它们添加到卡片视图中。这是我在使用其他视图组时遇到的问题。 - Umer Farooq

0
为什么要将可见性设置为0?如果你想要隐藏它,使用`visibility = View.GONE'。

另外,不要使用在L之前无法工作的elevation。相反,使用cardElevation,这样它也可以在L之前工作。


0
尝试在您的CardView中设置android:layout_height="wrap_content"

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接