如何仅在grid recyclerview中的每一行的开头和结尾处添加边距

时间:2019-11-06 11:07:37

标签: android android-layout android-recyclerview android-constraintlayout android-gridlayout

我为RecyclerView创建了以下布局,并以网格样式显示它。

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_margin="4dp"
        android:paddingBottom="24dp"
        android:background="@drawable/shadow_player_stats"
        xmlns:app="http://schemas.android.com/apk/res-auto">



    <TextView
            android:id="@+id/tvPlayerStats"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="10dp"
            android:layout_marginTop="12dp"
            android:letterSpacing="0.1"
            android:maxLength="4"
            android:maxLines="1"
            android:text="-"
            android:includeFontPadding="false"
            android:textColor="@color/white"
            android:textSize="34dp"
            android:textStyle="bold"
            app:layout_constraintStart_toStartOf="@+id/ivGames"
            app:layout_constraintTop_toTopOf="@+id/ivGames" />

        <TextView
            android:id="@+id/tvLabel"
            android:layout_width="0dp"
            android:layout_height="wrap_content"
            android:layout_marginStart="12dp"
            android:layout_marginEnd="12dp"
            android:maxLines="2"
            android:lines="2"
            android:text="DATA-TEST"
            android:textAllCaps="true"
            android:textColor="@color/white"
            android:textSize="14dp"
            android:textStyle="normal"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="@+id/ivGames"
            app:layout_constraintHorizontal_bias="0.0"
            app:layout_constraintStart_toStartOf="@+id/ivGames"
            app:layout_constraintTop_toBottomOf="@+id/tvPlayerStats"
            app:layout_constraintVertical_bias="0.0" />


    </androidx.constraintlayout.widget.ConstraintLayout>    

这将生成以下类型的布局。

enter image description here

但是我想在每行的开头和结尾添加空格,而不是在项目之间添加空格,如下面的

enter image description here

2 个答案:

答案 0 :(得分:0)

在回收站视图中添加开始/左侧和结束/右侧填充

尝试一下

  <androidx.recyclerview.widget.RecyclerView
                            android:id="@+id/draft_recylcerview"
                            android:layout_width="match_parent"
                            android:layout_height="wrap_content" 
                            android:paddingLeft="@dimen/margin_10"
                            android:paddingRight="@dimen/margin_10"/>

答案 1 :(得分:0)

尝试以下解决方案。

这是我的自定义布局,其中包含TextView my_custom_row.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <TextView
        android:id="@+id/myCustomTextView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="8dp"
        android:paddingBottom="8dp"
        android:textColor="@android:color/holo_green_dark"
        android:textSize="16sp"
        android:textStyle="bold" />

</LinearLayout>

在上面的代码中,您可以看到我在TextView中设置了paddingTop和paddingBottom,因此它将生成类似这样的布局

enter image description here

现在,当我只想在 recyclerview的开始和结束处设置更多的边距/填充时,我必须在recyclerview xml代码中设置以下属性。

android:clipToPadding="false"
android:paddingTop="15dp"
android:paddingBottom="15dp"

这将生成这样的布局

enter image description here

注意:我减少了textView的填充