自定义RecyclerView的点击事件和绘制分割线"/>
如何自定义RecyclerView的点击事件和绘制分割线
一,我是接着上一篇基础上进行绘制RecylerView的网格布局的,所以前戏就不讲了,关于为什么会想到继承RecyclerView.ItemDecoration之类的看上一篇吧,这篇直接分析然后写代码首先我们来分析RecylerView表格布局分割线如何绘制简单。下面来图片进行说明绘制技巧。
上图简单的画了一个RecylerView网格布局,我们通过上图可以分割出每个item的分割线,然后逐个绘制出所有的item的分割线就可以了如图所示,绘制出每一个item的分割线
这里可以看出RecylerView绘制分割线不在有判断列表方向是否是水平还是垂直,不同于线性列表绘制过程的是,它需要绘制下边和右边分割线。如图下图分析:
在item的下边和右边方向上都有偏移量。偏移量分别为我们设置的背景图片的高度和宽度。
所以在方法getItemOffsets里面可以进行设置每个item分割线各个方向上的偏移量。
如图我们可以知道,底部方向上为mDivider.getIntrinsicHeight(),右边方向上的偏移量为mDivider.getIntrinsictWidth();左边和上边都为0,所以各个方向偏移量我们都知道了。如下
在item的下边和右边方向上都有偏移量。偏移量分别为我们设置的背景图片的高度和宽度。
所以在方法getItemOffsets里面可以进行设置每个item分割线各个方向上的偏移量。
如图我们可以知道,底部方向上为mDivider.getIntrinsicHeight(),右边方向上的偏移量为mDivider.getIntrinsictWidth();左边和上边都为0,所以各个方向偏移量我们都知道了。如下
//左边偏移量为0
int left=0;
//上边偏移量为0
int top=0;
//右边偏移量为我们自定义分割线背景图片的宽度
int right=mDivider.getIntrinsicWidth();
//下边我们偏移量为我们自定义分割线背景图片的高度。
int bottom=mDivider.getIntrinsicHeight();
这里我需要说明mDivider是我们定义的图片背景或者默认的。
我们自定义一个宽高为2dp,2dp的图片背景。如下:
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android=""android:shape="rectangle"><size android:height="2dp" android:width
更多推荐
如何自定义RecyclerView的点击事件和绘制分割线
发布评论