如何自定义RecyclerView的点击事件和绘制分割线-高级UI-3-表格列表绘制分割线

本文介绍了如何在RecyclerView的网格布局中自定义点击事件和绘制分割线。通过分析每个item的边界,设置偏移量,并在getItemOffsets方法中设置高度和宽度。接着,使用自定义的2dp宽高图片背景,分别绘制每个item的下边和右边分割线。最终实现的代码示例展示了如何完成垂直和水平方向的分割线绘制。
摘要由CSDN通过智能技术生成

一,我是接着上一篇基础上进行绘制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="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"
    >
  <size android:height="2dp" android:width
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值