【问题标题】:How to remove spacing between recycler view items如何删除回收站视图项目之间的间距
【发布时间】:2021-02-16 20:18:44
【问题描述】:

我在回收站视图中的每个项目之间都有空间。我想删除它,我希望游戏标签与上部连接。

在我的布局中,我没有在顶部和底部使用任何边距或填充。

<androidx.constraintlayout.widget.ConstraintLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/layout_root"
    >


    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="16dp"
        android:text="Game"
        android:textColor="#000000"
        android:textSize="30dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

    <ImageView
        android:id="@+id/team_one_IV"
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:layout_centerVertical="true"
        android:background="#004187"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/textView1" />

   <ImageView
        android:id="@+id/team_one_IV2"
        android:layout_width="0dp"
        android:layout_height="40dp"
        android:layout_marginTop="2dp"
        android:layout_centerVertical="true"
        android:background="#004187"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/team_one_IV" />


    <ImageView
        android:id="@+id/ivLineSecond"
        android:layout_width="10dp"
        android:layout_height="80dp"
        android:layout_marginEnd="4dp"

        android:background="@drawable/line"
        android:visibility="visible"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/team_one_IV"
        app:layout_constraintVertical_bias="1.0" />

以下是我的回收站视图代码。

<androidx.recyclerview.widget.RecyclerView
        android:id="@+id/rv_score_board"
        android:layout_width="match_parent"
        android:clipToPadding="false"
        android:layout_height="match_parent"
        android:layout_marginRight="35dp"
        android:layout_marginLeft="10dp">
    </androidx.recyclerview.widget.RecyclerView>

【问题讨论】:

  • 您确定您共享的布局是否正确?从我的角度来看,我们的布局与屏幕截图中的布局不同。 ivLineSecond 占据每个项目底部的高度,team_one_IV 居中。不确定我们是否可以重现您的问题。请使用您拥有的确切代码更新您的布局并告诉我们。谢谢!

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


【解决方案1】:

尝试约束 android:id="@+id/ivLineSecond" 的按钮 到 android:id="@+id/team_one_IV2" 的按钮 并使它们的高度彼此相等

<TextView
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_marginLeft="16dp"
    android:text="Game"
    android:textColor="#000000"
    android:textSize="30dp"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent" />

<ImageView
    android:id="@+id/team_one_IV"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_centerVertical="true"
    android:background="#004187"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/textView1" />

<ImageView
    android:id="@+id/team_one_IV2"
    android:layout_width="0dp"
    android:layout_height="40dp"
    android:layout_marginTop="2dp"
    android:layout_centerVertical="true"
    android:background="#004187"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/team_one_IV" />


<ImageView
    android:id="@+id/ivLineSecond"
    android:layout_width="10dp"
    android:layout_height="40dp"
    android:layout_marginEnd="4dp"
    android:background="@drawable/line"
    android:visibility="visible"
    app:layout_constraintBottom_toBottomOf="@+id/team_one_IV2"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintTop_toBottomOf="@+id/team_one_IV"
    app:layout_constraintVertical_bias="0.0" />

【讨论】:

    【解决方案2】:

    这可以通过以下方式完成: 来自RecyclerView的xml:

       android:divider="@null"
       android:dividerHeight="0dp"
    

    还可以通过 Java/Kotlin 代码设置自定义分隔符装饰:

       // Get reference to the RecyclerView first
       // In Kotlin
       recyclerView.addItemDecoration(DividerItemDecoration(context, null))
    
       // In Java
       recyclerView.addItemDecoration(new DividerItemDecoration(context, null));
    

    您还可以调整列表项视图的padding/ margins 以获得所需的间距行为。

    【讨论】:

      猜你喜欢
      • 2016-09-27
      • 2021-01-12
      • 2018-04-11
      • 1970-01-01
      • 2016-07-04
      • 2015-11-24
      • 2017-05-02
      • 2016-01-24
      • 2020-02-26
      相关资源
      最近更新 更多