如何在 RecyclerView 中的 CardView 之间设置相等 space?

How to set equal space between CardViews in RecyclerView?

我的 RecyclerView 中有一些 CardViews,当我想通过添加边距在它们之间设置 space 时,我明白了:

如您所见,卡片之间的距离加倍。例如,如果我只为顶部、左侧和右侧设置边距,问题就解决了,但最后一张卡片会触及屏幕底部,我不想要它。像这样:

如你所见,所有的space都是平等的,都是好的,但是下面没有space。 我的项目中有 MainActivity.java、activity_main.xml、recyclerview_row.xml 和 MyAdapter.java。

这是我的 activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#dddddd">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/recycler_view">
    </android.support.v7.widget.RecyclerView>

</RelativeLayout>

这是我的 recyclerview_row.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.CardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="100dp"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    app:cardElevation="2dp"
    app:cardUseCompatPadding="true"
    app:cardPreventCornerOverlap="false"
    android:layout_margin="10dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        tools:ignore="UseCompoundDrawables">

        <ImageView
            android:layout_width="60dp"
            android:layout_height="60dp"
            android:id="@+id/image_view"
            android:layout_gravity="center_vertical"
            android:layout_margin="10dp"/>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/text_view"
            android:layout_gravity="center_vertical"
            android:layout_margin="10dp"/>

    </LinearLayout>

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

我的问题是如何设置这些卡片之间的距离相等。谢谢。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:background="#dddddd">

    <android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="10dp"
        android:id="@+id/recycler_view">
    </android.support.v7.widget.RecyclerView>

</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity"
        android:paddingBottom="@dimen/dim_10"
        android:background="#dddddd">

        <android.support.v7.widget.RecyclerView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/recycler_view">
        </android.support.v7.widget.RecyclerView>

    </RelativeLayout>

在 Main Activity、

中试试这个
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#dddddd">

<android.support.v7.widget.RecyclerView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:clipToPadding="false"
        android:paddingTop="10dp"
        android:paddingBottom="10dp"
        android:id="@+id/recycler_view">
    </android.support.v7.widget.RecyclerView>

</RelativeLayout>

如下更改您的activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="#dddddd">

<android.support.v7.widget.RecyclerView
    android:paddingBottom="10dp"
    android:clipToPadding="false"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/recycler_view">
</android.support.v7.widget.RecyclerView>

神奇的是这一行:android:clipToPadding="false"