RecyclerView 隐藏部分分割线
来源:互联网 发布:淘宝客服兼职 招聘吗 编辑:程序博客网 时间:2024/05/17 08:24
在项目中遇到复杂点的RecyclerView,可能会有隐藏部分分割线的需求,例如item1和item3之间的分割线隐藏,item4和item5之间的分割线隐藏等。
在看了文档里的ItemDecoration类后,可以发现这样三个方法:
getItemOffsets、onDraw和onDrawOver。
onDraw可以通过一些列c.draw的方法在itemView绘制之前绘制我们需要的内容。
onDrawOver与
onDraw
类似,只不过是在绘制itemView之后绘制,具体表现形式,就是绘制的内容在itemview上层。
这两个方法在这里不做讨论,重点关注
getItemOffsets
方法。
getItemOffsets
可以通过outRect.set(l,t,r,b)
设置指定itemview的paddingLeft
,paddingTop
,paddingRight
,paddingBottom。
在这里使用一个自定义的分割线去继承
ItemDecoration
,然后在需要隐藏的地方设置outRect.set(0,0,0,0),进而来实现隐藏分割线的效果。
以下代码隐藏了第一条与最后一条分割线。
public class SimpleDividerItemDecoration extends RecyclerView.ItemDecoration { private Drawable mDivider; //分割线Drawable private int mDividerHeight; //分割线高度 /** * 使用line_divider中定义好的颜色 * * @param context * @param dividerHeight 分割线高度 */ public SimpleDividerItemDecoration(Context context, int dividerHeight) { mDivider = ContextCompat.getDrawable(context, R.drawable.ba_divider); mDividerHeight = dividerHeight; } /** * @param context * @param divider 分割线Drawable * @param dividerHeight 分割线高度 */ public SimpleDividerItemDecoration(Context context, Drawable divider, int dividerHeight) { if (divider == null) { mDivider = ContextCompat.getDrawable(context, R.drawable.ba_divider); } else { mDivider = divider; } mDividerHeight = dividerHeight; } //获取分割线尺寸 @Override public void getItemOffsets(Rect outRect, View view, RecyclerView parent, RecyclerView.State state) { super.getItemOffsets(outRect, view, parent, state); int childAdapterPosition = parent.getChildAdapterPosition(view); int lastCount = parent.getAdapter().getItemCount() - 1; if (childAdapterPosition == 0) { outRect.set(0, 0, 0, 0); return; } if (childAdapterPosition == lastCount) { outRect.set(0, 0, 0, 0); return; } outRect.set(0, 0, 0, mDividerHeight); }}
阅读全文
0 0
- RecyclerView 隐藏部分分割线
- RecyclerView分割线
- RecyclerView分割线详解
- RecyclerView分割线
- RecyclerView虚线分割线
- Android Recyclerview分割线
- RecyclerView(实现分割线)
- RecyclerView万能分割线
- recyclerview分割线 -总结
- RecyclerView分割线
- RecyclerView分割线
- RecyclerView自定义分割线
- RecyclerView 分割线
- RecyclerView加载分割线
- RecyclerView分割线
- RecyclerView分割线
- RecyclerView的分割线
- RecyclerView添加分割线
- shell介绍、命令历史、命令补全和别名、通配符和输入输出重定向
- jquery文件上传控件 Uploadify
- ionic3 自定义插件的开发和调用(包含jar包调用,文件结构详解)
- 数字图像的梯度概念(the gradient of the image)
- 系统间通信方式之(ActiveMQ的使用性能优化之冰火两重天5)(十六)
- RecyclerView 隐藏部分分割线
- 输入不同对象的姓名、性别、年龄、体重和住址等信息,并输出显示
- React+Nginx页面刷新报错问题
- 实现Banner,TabLayout,XlistView
- FFmpeg RGB数据添加BMP头
- Python中lxml模块的安装
- route路由
- 2017 CCPC 秦皇岛
- FLYMCU串口下载配置界面