我正在使用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。
最好的问候
答案 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”。