【问题标题】:android:layout_height not working for CardViewandroid:layout_height 不适用于 CardView
【发布时间】:2015-01-03 19:03:09
【问题描述】:

我正在使用 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,但仍是布局设计器预览,当应用在设备上运行时,卡片的大小为 10dp。

最好的问候

【问题讨论】:

  • 有人来帮忙吗?

标签: android android-cardview


【解决方案1】:

根据您告诉程序的内容,您希望发生什么?

您告诉CardVeiw 的高度为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。它没有成功。此外我不能完全避免数字,在某些视图中我必须使用边距顶部和底部,它们也被添加到卡片视图中。这是我在使用其他视图组时遇到的行为
【解决方案2】:

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

另外,不要使用elevation,它在 L 之前不起作用。Insteed,使用 cardElevation,这样它也可以在 L 之前起作用。

【讨论】:

    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 2015-11-27
      • 1970-01-01
      • 1970-01-01
      • 2017-08-27
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      • 1970-01-01
      相关资源
      最近更新 更多