使用:

//添加分割线
recyclewview.addItemDecoration(new DividerItemDecoration(getActivity(), DividerItemDecoration.VERTICAL_LIST));
复制代码

源代码:

public class DividerItemDecoration extends RecyclerView.ItemDecoration {private static final int[] ATTRS = new int[]{android.R.attr.listDivider};public static final int HORIZONTAL_LIST = LinearLayoutManager.HORIZONTAL;public static final int VERTICAL_LIST = LinearLayoutManager.VERTICAL;private Drawable mDivider;private int mOrientation;public DividerItemDecoration(Context context, int orientation) {final TypedArray a = context.obtainStyledAttributes(ATTRS);mDivider = a.getDrawable(0);a.recycle();setOrientation(orientation);}public void setOrientation(int orientation) {if (orientation != HORIZONTAL_LIST && orientation != VERTICAL_LIST) {throw new IllegalArgumentException("invalid orientation");}mOrientation = orientation;}@Overridepublic void onDraw(Canvas c, RecyclerView parent) {if (mOrientation == VERTICAL_LIST) {drawVertical(c, parent);} else {drawHorizontal(c, parent);}}public void drawVertical(Canvas c, RecyclerView parent) {final int left = parent.getPaddingLeft();final int right = parent.getWidth() - parent.getPaddingRight();final int childCount = parent.getChildCount();for (int i = 0; i < childCount; i++) {final View child = parent.getChildAt(i);final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();final int top = child.getBottom() + params.bottomMargin +Math.round(ViewCompat.getTranslationY(child));final int bottom = top + mDivider.getIntrinsicHeight();mDivider.setBounds(left, top, right, bottom);mDivider.draw(c);}}public void drawHorizontal(Canvas c, RecyclerView parent) {final int top = parent.getPaddingTop();final int bottom = parent.getHeight() - parent.getPaddingBottom();final int childCount = parent.getChildCount();for (int i = 0; i < childCount; i++) {final View child = parent.getChildAt(i);final RecyclerView.LayoutParams params = (RecyclerView.LayoutParams) child.getLayoutParams();final int left = child.getRight() + params.rightMargin +Math.round(ViewCompat.getTranslationX(child));final int right = left + mDivider.getIntrinsicHeight();mDivider.setBounds(left, top, right, bottom);mDivider.draw(c);}}@Overridepublic void getItemOffsets(Rect outRect, int itemPosition, RecyclerView parent) {if (mOrientation == VERTICAL_LIST) {outRect.set(0, 0, 0, mDivider.getIntrinsicHeight());} else {outRect.set(0, 0, mDivider.getIntrinsicWidth(), 0);}}
}
复制代码

转载于:https://juejin.im/post/5b3ac852f265da62e060a231

RecycleView分割线相关推荐

  1. RecycleView 分割线设置及监听滚动状态

    一.RecycleView 分割线 ListView中的分割线可以通过属性divider和dividerHeight分别设置颜色值/图片及分割线高度.而RecycleView并没有提供这两个属性设置分 ...

  2. RecycleView分割线设置

    在网上看了一下,关于RecycleView分割线设置的办法,很多网友都是自定义设置,但是我遇到一个朋友说,客户说分割线太粗了,就算用0.5dp也还是很粗. 今天介绍一个框架,简单,方便. 在app b ...

  3. android 显示线方向,Android recycleview 分割线彩蛋

    我收集了一些学习用的资料,其中包含了很多学习,面试,中高进阶fluuter资料,还有很多视频详解,如果有同学想进一步了解,详情请看文末.也欢迎各路大神门前来装X. 首先上问题 怎么做? 当我们空余时间 ...

  4. Android工具类的整理

    文章目录 android开发的工具类 Acvitity的栈式管理工具 GlideUtils和ImageLoader] ImageSelector Json数据解析工具 ListView自适应高度的方法 ...

  5. 如何在php中添加音乐播放器,window_Win10自带Groove音乐播放器怎么使用?,《Groove音乐》是微软在Win10系 - phpStudy...

    Win10自带Groove音乐播放器怎么使用? <Groove音乐>是微软在Win10系统上推出的一款最新的音乐播放器,从而替代了之前的Xbox Music.而今天<Groove音乐 ...

  6. Android RLT布局兼容注意事项

    引 近期公司项目需要开拓阿拉伯市场,故需要在APP端兼容阿拉伯语. 阿拉伯语与其他多语言不同之处在于其布局是由右到左排布的,与我们常见的从左到右的布局不同.故需要修改部分代码的写法以兼容右到左布局. ...

  7. android开发搜集

    1.自适应各种尺寸的图片配置 http://blog.csdn.net/luoyuhhy/article/details/6451901 搜索关键字:android 图片 自适应 分辨率 2.对话框: ...

  8. android_汇总

    主题一: 「Android project nodes」 文章目录 主题一: 「Android project nodes」 一.环境配置及git托管 1.添加依赖的翻墙问题 2.Kotlin-And ...

  9. RecycleView 与 Elevation

    RecycleView 以前一直用ListView,因为ListView可以搞定绝大部分需求.最近项目UI做了很大调整,需要宽度不同的Item混排,记录一下遇到的问题. 类似这样效果 宽度不同的Ite ...

最新文章

  1. 除了沉迷酒色之外,你还做过什么?
  2. 爬取了BOSS直聘、拉勾等近1000+招聘需求,总结出3年+Java开发的高频技术需求
  3. SQL Server使用sp_rename重命名约束注意事项
  4. mysql from_unixtime(_MySQL 数据库中日期与时间函数 FROM_UNIXTIME(), UNIX_TIME()
  5. python numpy数组切片_python中numpy数组切片实验解释
  6. java判断日文_java判断字符串是否中文、日文
  7. element ui 前台模板_element-ui 菜单模板封装(递归)
  8. NPN和PNP型传感器或开关如何接线?
  9. APP - 重磅消息!微信测试无需新手机号注册新微信号功能
  10. Android 针对华为手机调用裁剪出现圆形裁剪框的处理
  11. html页面宽度和高度,页面布局宽度和高度 网页设计合适的页面尺寸是多少
  12. Java接入支付宝支付(沙箱)
  13. 为什么RGB 与 CMYK的差异,会有所不同?
  14. 复盘苏宁收购红孩子案例——思考VC与垂直电商的未来
  15. 辰视智能董事长冯良炳博士接受起点机器人网专访!
  16. HTML+CSS大作业 使用html+css实现一个静态的汽车页面(含源码)
  17. html日期选择器小日历样式,超漂亮的网页 日期 时间选择器
  18. 二叉树(二)----->链式二叉树(上)
  19. 1814 简单的字符串查找
  20. 盘点 | 10大行业大数据应用痛点及解决策略

热门文章

  1. makefile讲义(1)——makefile基础(概述)
  2. SQL中的Where,Group By,Order By和Having的用法/区别
  3. AS3给图片加水印文字
  4. Git学习笔记07-删除文件
  5. 运行cmd直接进入指定目录下的命令
  6. 解密SSL流量,发现隐藏威胁
  7. 【java项目实战】代理模式(Proxy Pattern),静态代理 VS 动态代理
  8. 使用maven下载依赖包及maven常见问题汇总
  9. 使用Redis分区将数据分割到多个Redis实例
  10. Exchange企业实战技巧(16)发布SMTP、POP、IMAP连接信息设置