RecyclerView addItemDecoration 的妙用

编程入门 行业动态 更新时间:2024-10-05 19:15:13

RecyclerView addItemDecoration 的<a href=https://www.elefans.com/category/jswz/34/1766881.html style=妙用"/>

RecyclerView addItemDecoration 的妙用

在提供给RecyclerView的画布上绘制任何适当的装饰。通过此方法绘制的任何内容都将在绘制项目视图之后绘制,因此将出现在 item 视图上面。


如何添加分割线


RecyclerViewDivider,已支持以下功能

  1. 自定义分割线,设置 drawable

  2. 设置分割线高度,颜色

  3. 设置分割线距离屏幕左边,右边的距离

  4. 设置是否显示最后一条分割线

详情代码见 RecyclerViewSample

实现思路

我们知道 RecyclerView 没有像之前 ListView 提供 divider 属性,设置分割线的话有挺多人在 itemView 的布局里面加个 1dp 左右的 view,根据业务场景设置是否可见。这是其中的一种方法。

但其实,我们也可以使用 recyclerView.addItemDecoration() 来实现,主要需要重写 getItemOffsets 和 onDraw 方法

思路很简单

  1. 重写 getItemOffsets 方法,加上 divider 的高度,影响 itemView 的最终 size

  2. 在 onDraw 方法,根据 LinearLayoutManager 的方向分别绘制分割线

@Override

public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) {

super.getItemOffsets(outRect, view, parent, state);

outRect.set(0, 0, 0, mDividerHeight);

}

@Override

public void onDraw(Canvas c, RecyclerView parent, RecyclerView.State state) {

super.onDraw(c, parent, state);

if (mOrientation == LinearLayoutManager.VERTICAL) {

drawVerticalDivider(c, parent);

} else {

drawHorizontalDivider(c, parent);

}

<

更多推荐

RecyclerView addItemDecoration 的妙用

本文发布于:2024-02-28 00:37:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1767141.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:妙用   RecyclerView   addItemDecoration

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!