【问题标题】:Cradview left space between itemsCradview 在项目之间留下空间
【发布时间】:2018-09-03 05:06:58
【问题描述】:

我的问题是 Android Studio 中的 Cardview。我正在解析 XML 提要中的数据并使用 cardview 来显示它。一切似乎都很好,但是 cardview 在每一行之后都留下了可用空间。我的布局代码如下。

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView 
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/cardview"
android:orientation="vertical">

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

    <TextView
        android:id="@+id/date_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentEnd="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:text="Small Text" />

    <ImageView
        android:id="@+id/thumb_img"
        android:layout_width="350dp"
        android:layout_height="150dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/date_text"
        android:src="@drawable/test" />

    <TextView
        android:id="@+id/title_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignBottom="@+id/thumb_img"
        android:layout_centerHorizontal="true"
        android:background="#006699"
        android:gravity="center"
        android:lines="1"
        android:text="TextView" />

    <TextView
        android:id="@+id/description_text"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/thumb_img"
        android:text="TextView" />
</RelativeLayout>

【问题讨论】:

  • 您需要将您的cardview 高度从match_parent 更改为wrap_content,并且您还需要更改您的relativelayout 高度

标签: android xml cardview


【解决方案1】:

您需要将CardViewRelativeLayout 的高度从match_parent 更改为wrap_content

使用更改布局 XML 这将解决您的问题

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/cardview"
    android:orientation="vertical">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <TextView
            android:id="@+id/date_text"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_alignParentTop="true"
            android:text="Small Text" />

        <ImageView
            android:id="@+id/thumb_img"
            android:layout_width="350dp"
            android:layout_height="150dp"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/date_text"
            android:src="@drawable/test" />

        <TextView
            android:id="@+id/title_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignBottom="@+id/thumb_img"
            android:layout_centerHorizontal="true"
            android:background="#006699"
            android:gravity="center"
            android:lines="1"
            android:text="TextView" />

        <TextView
            android:id="@+id/description_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:layout_below="@+id/thumb_img"
            android:text="TextView" />
    </RelativeLayout>
</android.support.v7.widget.CardView>

【讨论】:

    【解决方案2】:

    尝试将android:layout_height="match_parent" 更改为android:layout_height="wrap_content"

    现在,您正在告诉 android 将 cardview 设置为包装布局的高度,我认为您想要的是它只占用显示信息所需的高度。

    【讨论】: