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

是否在RecyclerView中得单元格之间添加空间?[副本]

马权
2023-03-14

在我的RecolyerView中,项目贴得很近,我想在项目之间增加空间,而不在项目本身添加边距。我在想我怎么才能做到这一点?

我希望它看起来像:

我是否可以编辑XML本身来实现这一点?

<androidx.recyclerview.widget.RecyclerView
                android:id="@+id/list"
                android:background="@color/gray6"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:animationCache="false"
                android:cacheColorHint="@color/transparent"
                android:descendantFocusability="afterDescendants"
                android:divider="@color/transparent"
                android:dividerHeight="0dp"
                android:listSelector="@color/transparent"
                android:scrollingCache="false" />

共有1个答案

傅新
2023-03-14

也可以通过制作一个自定义的recyclerview装饰器来完成,

class MarginItemDecoration(private val spaceHeight: Int) : RecyclerView.ItemDecoration() {
    override fun getItemOffsets(outRect: Rect, view: View, 
        parent: RecyclerView, state: RecyclerView.State) {        with(outRect) {
            if (parent.getChildAdapterPosition(view) == 0) {
                top = spaceHeight
            }
            left =  spaceHeight
            right = spaceHeight
            bottom = spaceHeight
        }
    }
}

并将其添加到recyclerview中,

recyclerView.addItemDecoration(MarginItemDecoration(
        resources.getDimension(R.dimen.default_padding).toInt()))

但是,这种方法有点冗长,我建议在recyclerview行的xml中放入边距,这也是一种很好的方法,不用担心!

 类似资料:
  • 我需要添加一些空间开始的第一项和结束的最后一项的回收,所以他们可以滚动到屏幕的边缘(因为他们不能与回收器视图的边距或填充) 问题是项目之间的间距应该不同,所以我不能只是将这个“空间”添加到项目布局中。现在,我正试图将ItemEdition添加到我的回收器中,但结果就是这样: 在我触摸它之前,行间距随机出现:随机行间距 然后,当我滚动到最后并返回时,所需的空间出现在屏幕上适合的最后一项之后,而不是在

  • 注意,这个空间只在最末端可见,因为我不想改变布局。我可以使recycerview有一个50dp的边际底部,但我不想这样做。

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

  • 问题内容: 我这里有两个div: 有没有办法在这两个div之间分隔空间? 问题答案: 您可以使用属性: HTML: CSS: 还有其他选择吗? 好吧 ,不是真的。 为什么? 属性不适用于元素。 属性不会在单元格的边缘之间创建空间。 属性破坏了能够与其父元素一样高的元素的预期行为。

  • 问题内容: 这是我正在使用的代码。 我将单独的main方法与此代码一起调用上述方法: 有没有一种方法可以轻松在输出之间添加空格?这是当前的样子: 问题答案: 添加文字空间或制表符:

  • 问题内容: 如何使用Twitter Bootstrap框架向元素添加边距顶部? 问题答案: 在Twitter引导程序中编辑或覆盖行是一个坏主意,因为这是页面支架的核心部分,并且您将需要没有上边距的行。 要解决此问题,请创建一个新类“ top-buffer”,添加所需的标准边距。 然后在需要上边距的行div上使用它。