回收器视图项中视图之间的空白

Whitespace between views in recycler view item

我在回收站视图中为每个项目使用卡片视图,但我在图片下方和上方变成白色 space,我不确定如何,我需要摆脱 it.This 是每个项目的 xml 布局。

    <?xml version="1.0" encoding="utf-8"?>
<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/cv_custom"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginEnd="10dp"
    android:layout_marginLeft="10dp"
    android:layout_marginRight="10dp"
    android:layout_marginStart="10dp"
    android:clickable="true"
    android:elevation="2dp"
    android:foreground="?android:attr/selectableItemBackground"
    card_view:cardCornerRadius="1dp"
    card_view:cardElevation="2dp"
    card_view:cardUseCompatPadding="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/image_path"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@string/event_image" />

        <TextView
            android:id="@+id/custom_event_name"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:ellipsize="marquee"
            android:gravity="start|top"
            android:maxLines="1"
            android:padding="5dp"
            android:textColor="@color/parent"
            android:textSize="20sp"
            android:textStyle="bold" />

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

这是 xml provided.One 项目 i 的当前外观,其中一个是 without.Set 回收站视图的背景为红色,以便间隙更显眼。

ImageView内你需要提供一个比例尺

android:scaleType="centerCrop"

您看到白色的原因 space 是因为图像和容器的纵横比不同。

假设您正试图将一个宽矩形放入一个正方形中。您可以将其放入,但顶部和底部将为 "empty" 或在本例中为白色。

如果您进行中心裁剪,则图像将被裁剪。这会将矩形切割成正方形,因此非常适合!

我曾经通过将 space 放在视图下来解决这个问题,但我不喜欢视图列表末尾的所有额外 space。但我意识到,只需将 space 的一半放在上面,一半放在下面(在列表项上)。然后当它们合并时,项目之间的 space 是原来的两倍,而正常的 space 用于填充列表的顶部和底部。