如何设置Recycleview组件之间的间隔

做课设的时候用到了recycleview,为了美化界面,就想给他的组件之间加一个间隔,就如同下图的效果所示:

后来了解了一下,RecyclerView没有可以直接设置间距的属性,但是后来发现RecyclerView有个内部类ItemDecoration,可以用ItemDecoration来装饰一个item,所以继承重写ItemDecoration就可以实现间距了。下面来介绍这种方法(只适用于LinearLayoutManager)

1、在你所需要的fragment或activity中重写ItemDecoration方法

public class SpacesItemDecoration extends RecyclerView.ItemDecoration {
        private int space;

        public SpacesItemDecoration(int space) {
            this.space = space;
        }

        @Override
        public void getItemOffsets(Rect outRect, View view,
                                   RecyclerView parent, RecyclerView.State state) {
            outRect.left = space;//设置上下左右间隔,根据自己的需要添加
            outRect.right = space;
            outRect.bottom = space;

            // Add top margin only for the first item to avoid double space between items
            if (parent.getChildPosition(view) == 0) //检查当前item是否是RecyclerView中的第一个item

                outRect.top = space;  //为了确保第一个item和RecyclerView的顶部之间有一个空间,而不是两个连续的item之间有两个空间(因为每个item的底部都有一个空间)
        }
    }

2、设置你想要的间隔值(单位:dp)

recyclerView.addItemDecoration(new SpacesItemDecoration(15));

这样就能实现上图所展示的间隔效果啦,这里设置15dp可能还不是特别明显,大家可以把值再设大些,效果会更加明显

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值