项目实践-自定义分割线(一)

本文介绍了如何在Android中自定义RecyclerView的ItemDecoration,通过getItemOffsets()和onDraw()方法实现自定义分割线,详细解释了这两个方法的作用,并展示了实际效果。
摘要由CSDN通过智能技术生成

一 前言

效果:
在这里插入图片描述

目标就是:在聊天界面和个人信息这样的界面中,基本上就是一个RecyclerView了。如果不会自定义分割线,就只能很丑陋了w

本次的参考资料:
RecyclerView之ItemDecoration
(译文)RecyclerView之ItemDecoration由浅入深
深入理解 RecyclerView 系列之一:ItemDecoration

二 自定义ItemDecoration分割线上手

2.1 什么是ItemDecoration

我们之前写的RecyclerView设置分割线的方法如下:

recyclerView.addItemDecoration(new DividerItemDecoration(context, DividerItemDecoration.VERTICAL));

然后粗略一查就知道,想要完成自定义分割线,需要的是自定义ItemDecoration。然后在MD官网里,我们看到标星号,写日期等也都是靠继承ItemDecoration之后完成。
ItemDecoration到底是什么?

直译:条目装饰,顾名思义,ItemDecoration是对Item起到了装饰作用,更准确的说是对item的周边起到了装饰的作用,通过下面的图应该能帮助你理解这话的含义。
在这里插入图片描述
上图中已经说到了,
getItemOffsets()就是设置item周边的偏移量(也就是装饰区域的“宽度”)。
而onDraw()才是真正实现装饰的回调方法,通过该方法可以在装饰区域任意画画,
onDrawOver(),可以绘制在内容的上面,覆盖内容

2.2 getItemOffsets()方法

    @Override
    public void getItemOffsets(@NonNull Rect outRect, @NonNull View view, 
    						@NonNull RecyclerView parent, @NonNull RecyclerView.State state) {
   
        super.getItemOffsets(outRect, view, parent, state);
    }

参数解释:
outRect:

深入理解 RecyclerView 系列之一:ItemDecoration
getItemOffsets 中为 outRect 设置的4个方向的值,将被计算进所有 decoration 的尺寸中,而这个尺寸,被用来计算 RecyclerView

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值