RecyclerView优雅设置边距

来源:互联网 发布:车牌号查询车主软件 编辑:程序博客网 时间:2024/06/06 23:56

设置边距的方法有很多,但是灵活性最高,性能最高,代码模块性最高的代码非ItemDecoration莫属。


为什么最优雅,因为这是RecyclerView原生的啊。


class ChatDetailItemDecoration extends RecyclerView.ItemDecoration {    private int space;    public ChatDetailItemDecoration(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;        if (parent.getChildPosition(view) == 0)            outRect.top = space;    }}

只需要实现RecyclerView.ItemDecoration的子类即可。

为什么说灵活性最高?因为他可以给每个item都设置不同的边距,随心所欲。拿最后的if代码举例子,就是给第一个item的上边距设置了一段空白距离。


使用很简单

mRvChatDetail.addItemDecoration(new ChatDetailItemDecoration(20));

效果图

原来



现在