首先当然应该来一个RecyclerView,直接上代码:

public class MainActivity extends AppCompatActivity {private RecyclerView recyclerView;
private ArrayList<String> titles = new ArrayList<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化RecyclerViewrecyclerView = (RecyclerView) findViewById(R.id.recyclerView);recyclerView.setLayoutManager(new LinearLayoutManager(this,LinearLayoutManager.VERTICAL,false));for (int i = 0; i < 20; i++) {titles.add("标题"+i);}recyclerView.setAdapter(new RecyclerViewAdapter(this,titles));}
}

RecyclerView适配器

public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> {private Context context;private ArrayList<String> datas;public RecyclerViewAdapter(Context context, ArrayList<String> datas) {this.context = context;this.datas = datas;}@NonNull@Overridepublic ViewHoulder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {View view = LayoutInflater.from(contextl).inflate(R.layout.layout,viewGroup,false);return new ViewHoulder(view);}@Overridepublic void onBindViewHolder(ViewHolder holder, int position) {//根据position得到对应的数据String data = datas.get(position);holder.tvTitle.setText(data);}/*** 得到总条数*/@Overridepublic int getItemCount() {return datas.size();}class ViewHolder extends RecyclerView.ViewHolder {ImageView ivIcon;TextView tvTitle;public ViewHolder(View itemView) {super(itemView);ivIcon = (ImageView) itemView.findViewById(R.id.iv_icon);tvTitle = (TextView) itemView.findViewById(R.id.tv_title);}}
}

运行之后是这样的:

这个是没有分割线的。

接下来添加默认的分割线
现在我们就来添加分割线,首先来试试最简单的,也就是安卓自带的分割线。只需要加一行代码即可。

    //添加Android自带的分割线recyclerView.addItemDecoration(new DividerItemDecoration(this,DividerItemDecoration.VERTICAL));

addItemDecoration方法需要一个DividerItemDecoration的对象,而创建其对象时,我们需要传入上下文和分割线的方向。运行一下,就可以看到分割线出现了:

如果不满意还可以自定义分割线

打开DividerItemDecoration看看它的源码,有这么一个函数:

public void setDrawable(@NonNull Drawable drawable) {if (drawable == null) {throw new IllegalArgumentException("Drawable cannot be null.");}mDivider = drawable;
}

我们只需要调用这个方法,然后传入一个Drawable函数对象就可以了。现在可以用shape来编写一个分割线样式:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><gradient
        android:centerColor="#ff00ff00" //绿色android:endColor="#ff0000ff"    //蓝色android:startColor="#ffff0000"  //红色android:type="linear" /><size android:height="3dp" /></shape>

这里弄的是一条渐变色分割线。然后添加分割线的代码改为如下:

//添加自定义分割线DividerItemDecoration divider = new DividerItemDecoration(this,DividerItemDecoration.VERTICAL);divider.setDrawable(ContextCompat.getDrawable(this,R.drawable.custom_divider));recyclerView.addItemDecoration(divider);

跑起来之后,就可以看到一条多彩的分割线了:

这样一来使用范围就广很多了,比如item之间需要一定的间隔,那么我们就可以加一条透明的分割线。

添加分割线的代码很简单,以后需要加一条简单的分割线时就可以这么处理。注意这只适用于列表布局(LinearLayout)的RecyclerView,网格布局(GridLayout)和流式布局(StaggeredGridLayout)就不适用了。

RecyclerView添加分割线相关推荐

  1. Android移动开发之【Android实战项目】Recyclerview添加花色分割线

    最近在做项目的过程中发现干巴巴的Recyclerview真的不好看,这里讲一下怎么一句话加默认的分割线,并且改变分割线的样式. 文章目录 一.添加默认分割线 二.修改样式 三.设置方法 通过 setD ...

  2. RecyclerView添加表格分割线

    需求:recyclerView实现表格效果,并在行与行,列与列之间添加分割线. 实现 : 最简单的方法就是使用系统自带的分割线实现类DividerItemDecoration来设置分割线. 具体操作: ...

  3. RecyclerView addItemDecoration 的妙用 - item 间距平均分布和添加分割线

    前言 RecyclerView,在开发当中使用非常频繁的一个控件,今天,主要讲解以下两个问题 添加分割线 item 间距的平均分布 文章目录如下 addItemDecoration 方法简介 如何添加 ...

  4. 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果

    [转] 原文 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果 字数1598 阅读302 评论2 喜欢23 1.背景   RecyclerView ...

  5. RecyclerView 官方分割线

    DividerItemDecoration 官方的分割线 今天忽然看到一个好东西,给大家分享一下.在API 25之后,Google添加了一个DividerItemDecoration用作Recycle ...

  6. RecyclerView添加下划线

    RecyclerView添加下划线 最近写一个项目,要给RecyclerView添加下滑线,由于本人比较菜,所以去度娘上搜了一波,发现大神们的代码量真的好长(主要是我太懒),然后就想能不能在xml文件 ...

  7. RecyclerView添加Header的正确方式

    看了一下博客目录,已经有好几篇博客是关于RecyclerView的,不过对于这么一款强大的控件,我还是要再写一篇博客来学习一下,这篇博客的主题是<为RecyclerView添加header> ...

  8. Android RecyclerView添加Header头部

     Android RecyclerView添加Header头部 Android RecyclerView不像以前的ListView那样直接添加头部,如果要给RecyclerView增加头部,则需要 ...

  9. R语言ggplot2可视化:使用R原生plot函数为指定曲线下面的区域着色、ggplot2可视化在曲线的特定下方添加分割线、ggplot2为指定曲线下面的区域着色

    R语言ggplot2可视化:使用R原生plot函数为指定曲线下面的区域着色.ggplot2可视化在曲线的特定下方添加分割线.ggplot2为指定曲线下面的区域着色 目录

  10. Android Material Design :LinearLayoutCompat添加分割线divider

     Android Material Design :LinearLayoutCompat添加分割线divider Android Material Design 扩展支持包中的LinearLayo ...

最新文章

  1. mysql 学习笔记(二)
  2. Python_位_成员_身份运算符
  3. mysql循环查到没数据库_【mysql】在for循环里使用多线程查询数据库
  4. Sql plus命令报command not found的解决笔记
  5. recv发送失败 缓冲区太小_从 GFS 失败的架构设计来看一致性的重要性
  6. LeetCode 919. 完全二叉树插入器(层序遍历队列)
  7. IDEA把console的输出写入到文件中
  8. iqc工作职责和工作内容_新媒体实习生是做什么的?新媒体实习生岗位职责工作内容...
  9. 三角网导线平差实例_附和导线坐标平差法实例
  10. 如何使用XMind进行高效的时间管理
  11. 手机NFC是什么?怎么使用?
  12. 居家办公小能手,分享提高工作效率的4款办公软件
  13. win7中显示桌面的方式有哪些?
  14. 根据域名展示对应备案号内容的共用站点默认页面index.html
  15. 最全面的全栈技术(成功绝非偶然)
  16. 什么是蓝光危害?62471认证测试项目
  17. PSP用DOS模拟器DOSBOX 0.71版发布
  18. jwPlayer播放器基本使用
  19. 4. 将所有学生的年龄增加1岁。
  20. Unity 工具-Opus音频压缩(安卓篇)

热门文章

  1. CST微波工作室学习笔记1 概述
  2. win10时间校对正确
  3. 美团实习经验(基础架构部)
  4. div3 C. Dominant Piranha
  5. OpenCV(二) —— 颜色通道提取 边界填充 数值计算 图像融合
  6. 山东省教师教育网-学习课程
  7. 计算机配置怎么造假,骗局揭秘:卖你一台假电脑 再送你一个假鲁大师
  8. Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determin
  9. Java第十九天:mysql(二)
  10. pycharm读取CSV文件