天天看点

android自定义实现时间轴

很常见的一个需求,时间轴。

一般会配合RecyclerView。这次刚好是RecyclerView实现的列表,同时要在左侧显示时间轴。而且这个时间轴不连续,而且item的高度不一致。

android自定义实现时间轴

这里,我选择使用RecyclerView的ItemDecoration来实现该 【分组时间轴】。

自定义ItemDecoration,设置左侧图标,以及上下左右的偏移等。

主要代码如下:

override fun onDraw(c: Canvas, parent: RecyclerView, state: RecyclerView.State) {
        super.onDraw(c, parent, state)
        // 获取RecyclerView的Child view的个数
        val childCount = parent.childCount

        // 遍历每个Item,分别获取它们的位置信息,然后再绘制对应的分割线
        for (i in 0 until childCount) {
            // 获取每个Item对象
            val child: View = parent.getChildAt(i)
            // 轴点 = 圆 = 圆心(x,