如何缩小RecyclerView中的CardView之间的空间?

时间:2018-03-18 22:07:23

标签: android

所以我正在为Android学习应用开发,而且我有点卡住了。我试图用CardViews制作RecyclerView,但CardViews之间的空间太大了。 This is what it looks like.

我想了解更多关于Google应用与Feed相关的外观。  This is more like what I'm shooting for.

无论如何,我已经在这个网站上搜索和搜索了我的问题的解决方案,似乎没有什么对我有用。我希望有人可以给我一些实际可行的东西。

这是我的cardview的xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="10dp">

<android.support.v7.widget.CardView
    android:id="@+id/cv"
    android:layout_width="match_parent"
    android:layout_height="120dp"
    app:cardCornerRadius="10dp"
    app:cardElevation="5dp"
    app:cardUseCompatPadding="true"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="16dp">

        <TextView
            android:id="@+id/note_title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="false"
            android:layout_below="@+id/event_time"
            android:textSize="24sp" />

        <TextView
            android:id="@+id/note_content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/note_title" />

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

3 个答案:

答案 0 :(得分:0)

顶部和底部空格是由填充引起的 android:paddingBottom =“10dp”,删除或减少它

答案 1 :(得分:0)

减少root constraintLayout的PadingBotom   你可以放3或4 dp而不是10dp。

android:paddingBottom="10dp"

此外,我不知道您的代码副本是否不合适... constraintLayout必须在最后关闭: 在此之后:

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

你必须有这个:

</android.support.constraint.ConstraintLayout>

答案 2 :(得分:0)

来自CardView的{​​{1}}:

  

在Lollipop之前,CardView会在其内容中添加填充并为该区域绘制阴影。 ...如果您希望CardView在Lollipop平台上添加内部填充,之后也可以调用setUseCompatPadding(boolean)并传递true

在您的布局中,您的CardView代码中包含此属性:

app:cardUseCompatPadding="true"

这与上面引用的方法完全相同。

因此,即使您的卡片的所有边缘都没有边距,由于内部填充行为,用户仍会看到它们之间的空间。如果你想要非常紧密的间距,你必须删除这个属性(当然你仍然获得更大的间距前Lollipop)。