RecyclerView添加分割线
首先当然应该来一个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添加分割线相关推荐
- Android移动开发之【Android实战项目】Recyclerview添加花色分割线
最近在做项目的过程中发现干巴巴的Recyclerview真的不好看,这里讲一下怎么一句话加默认的分割线,并且改变分割线的样式. 文章目录 一.添加默认分割线 二.修改样式 三.设置方法 通过 setD ...
- RecyclerView添加表格分割线
需求:recyclerView实现表格效果,并在行与行,列与列之间添加分割线. 实现 : 最简单的方法就是使用系统自带的分割线实现类DividerItemDecoration来设置分割线. 具体操作: ...
- RecyclerView addItemDecoration 的妙用 - item 间距平均分布和添加分割线
前言 RecyclerView,在开发当中使用非常频繁的一个控件,今天,主要讲解以下两个问题 添加分割线 item 间距的平均分布 文章目录如下 addItemDecoration 方法简介 如何添加 ...
- 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果
[转] 原文 自定义RecyclerView.ItemDecoration,实现RecyclerView的分割线效果 字数1598 阅读302 评论2 喜欢23 1.背景 RecyclerView ...
- RecyclerView 官方分割线
DividerItemDecoration 官方的分割线 今天忽然看到一个好东西,给大家分享一下.在API 25之后,Google添加了一个DividerItemDecoration用作Recycle ...
- RecyclerView添加下划线
RecyclerView添加下划线 最近写一个项目,要给RecyclerView添加下滑线,由于本人比较菜,所以去度娘上搜了一波,发现大神们的代码量真的好长(主要是我太懒),然后就想能不能在xml文件 ...
- RecyclerView添加Header的正确方式
看了一下博客目录,已经有好几篇博客是关于RecyclerView的,不过对于这么一款强大的控件,我还是要再写一篇博客来学习一下,这篇博客的主题是<为RecyclerView添加header> ...
- Android RecyclerView添加Header头部
Android RecyclerView添加Header头部 Android RecyclerView不像以前的ListView那样直接添加头部,如果要给RecyclerView增加头部,则需要 ...
- R语言ggplot2可视化:使用R原生plot函数为指定曲线下面的区域着色、ggplot2可视化在曲线的特定下方添加分割线、ggplot2为指定曲线下面的区域着色
R语言ggplot2可视化:使用R原生plot函数为指定曲线下面的区域着色.ggplot2可视化在曲线的特定下方添加分割线.ggplot2为指定曲线下面的区域着色 目录
- Android Material Design :LinearLayoutCompat添加分割线divider
Android Material Design :LinearLayoutCompat添加分割线divider Android Material Design 扩展支持包中的LinearLayo ...
最新文章
- mysql 学习笔记(二)
- Python_位_成员_身份运算符
- mysql循环查到没数据库_【mysql】在for循环里使用多线程查询数据库
- Sql plus命令报command not found的解决笔记
- recv发送失败 缓冲区太小_从 GFS 失败的架构设计来看一致性的重要性
- LeetCode 919. 完全二叉树插入器(层序遍历队列)
- IDEA把console的输出写入到文件中
- iqc工作职责和工作内容_新媒体实习生是做什么的?新媒体实习生岗位职责工作内容...
- 三角网导线平差实例_附和导线坐标平差法实例
- 如何使用XMind进行高效的时间管理
- 手机NFC是什么?怎么使用?
- 居家办公小能手,分享提高工作效率的4款办公软件
- win7中显示桌面的方式有哪些?
- 根据域名展示对应备案号内容的共用站点默认页面index.html
- 最全面的全栈技术(成功绝非偶然)
- 什么是蓝光危害?62471认证测试项目
- PSP用DOS模拟器DOSBOX 0.71版发布
- jwPlayer播放器基本使用
- 4. 将所有学生的年龄增加1岁。
- Unity 工具-Opus音频压缩(安卓篇)
热门文章
- CST微波工作室学习笔记1 概述
- win10时间校对正确
- 美团实习经验(基础架构部)
- div3 C. Dominant Piranha
- OpenCV(二) —— 颜色通道提取 边界填充 数值计算 图像融合
- 山东省教师教育网-学习课程
- 计算机配置怎么造假,骗局揭秘:卖你一台假电脑 再送你一个假鲁大师
- Cannot uninstall 'wrapt'. It is a distutils installed project and thus we cannot accurately determin
- Java第十九天:mysql(二)
- pycharm读取CSV文件