RecyclerView使用GridLayoutManager 设置间距一致大小

您所在的位置:网站首页 歌曲爱在深秋原创 RecyclerView使用GridLayoutManager 设置间距一致大小

RecyclerView使用GridLayoutManager 设置间距一致大小

#RecyclerView使用GridLayoutManager 设置间距一致大小| 来源: 网络整理| 查看: 265

RecyclerView使用GridLayoutManager 设置间距的时候需要重写RecyclerView.ItemDecoration这个类来设置间距。如下图:

但由于网格类型下左右都有Item,要想每个item上下左右间距保持一致,单独设置item的间距不太容易实现,这个时候同时设置RecyclerView的Padding值更容易实现。

item的布局如下:`

`

这里我用的ConstraintLayout,其实不管用什么,只要保持Item的布局充满屏幕即可。 然后设置RecyclerView的addItemDecoration 以及PaddingLeft值。

val space = SizeUtils.dp2px(10f) recyclerView.addItemDecoration(SpacesItemDecoration(space)) recyclerView.setPadding(space, 0, 0, 0)

ItemDecoration 类中的代码。只要设置每个Item的右边距就可以,这样既能保持Item大小一致,左右间距也是一致的。

class SpacesItemDecoration(val space: Int) : RecyclerView.ItemDecoration() { override fun getItemOffsets(outRect: Rect, view: View, parent: RecyclerView, state: RecyclerView.State) { if (parent.layoutManager is GridLayoutManager) { outRect.top = space outRect.right = space } } }

其实就是一种思路,如果你的Item不是充满屏幕的,而是固定值得大小。

比如每行3个item。 item间距 = (屏幕宽度 - item 宽度*3) 除以 (3 + 1)

然后在和上面一样去设置Padding值和ItemDecoration就可以了。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3