当前位置: 首页 > 知识库问答 >
问题:

Android-RecycerView网格中项目之间的间距

范麒
2023-03-14

在我的Android应用程序中,我使用RecyclerView通过使用GridLayoutManager在网格中显示项目。在GridView中,为了指定元素之间的间距,我将设置HorizonalSpacing和verticalSpacing属性。

那么,如何在recyclerview上执行同样的操作呢?

共有1个答案

扈沛
2023-03-14

我没有用GridLayout测试它,但是对于LinearLayout,我只是为每个ListItem的根布局设置了一个边距。我猜如果你想要所有物品之间的空间相同(比方说8dp),你就必须这样做:

  1. 将layout_padding 4 dp设置为RecyclerView。
  2. 将layout_margin 4 dp设置为每个ListItem。

这样你就会有一个恒定的8dp围绕每一个项目。

下面的代码是一个水平的RecyclerView,它以8 dp的正确间距显示图像:

<!-- fragment_layout.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    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="match_parent"
    android:padding="4dp">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recycler_view"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layoutManager="android.support.v7.widget.LinearLayoutManager"
        tools:listitem="@layout/list_item" />

</LinearLayout>
<!-- list_item.xml -->
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:layout_margin="4dp">

    <ImageView
        android:layout_width="@dimen/thumbnail_size"
        android:layout_height="@dimen/thumbnail_size"
        android:contentDescription="@string/image_content_desc" />

</LinearLayout>

编辑:我意识到项目视图需要有一个父视图组,所以我更新了片段。

 类似资料:
  • 我需要在网格项目之间水平绘制线。 我做到了,但问题是网格项之间的空间 它不是连接项目,而是放置间距 xml文件中的GridLayout: 网格项布局: 我的代码如下: 我需要加入这些队伍……

  • 在这种情况下,是否可以定义边距和/或直接在列表项的布局中添加自定义分隔视图,或者是否有更好的方法来实现我的目标?

  • 因此,在我的have中,我有回收视图,我想要我的再循环视图项目之间的间隔,所以这里我有两个选项 < li >我可以子类化< code > RecyclerView。ItemDecoration < li >我可以将< code >边距添加到项目本身 Cleary第二个选项很简单,使用该选项我得到了想要的结果,但在网上我看到人们使用并推荐它。 我想知道使用< code>ItemDecoration是

  • 如何在项目之间添加空格?有办法吗? 在这个图像上,白色是背景,黄色是JList的自定义,我希望每个项目都有一个像5像素的空间。 http://img819.imageshack.us/img819/5772/spacemd.png

  • 我试图在javaFX程序中显示一个4列网格。这就是我设置网格的方式。 我已将标签和文本字段分别放在列 1,3 和列 2,4 中。问题是文本字段和下一个标签之间存在间隙,因此减少了第二个文本字段的宽度。 我该如何解决这个问题?

  • 我很难弄清楚如何在XML文件中为回收器视图设置填充和边距,以实现这种行为,既保持回收器列表项之间的相等间距,又保持父项之间的相同间距。 ParenStart<-10DP->ListItem<-10DP->ListItem<-10DP->ParentEnd 同时能够滚动屏幕的全宽度(父级)。 如果不在父项上设置填充,而只在列表项上设置填充,则会出现以下问题:ParenStart<-10DP->Lis