2自定义View系列课程学习笔记——之Scroller和ViewDragHelper

2自定义View系列课程学习笔记——之Scroller和ViewDragHelper
一、Scroller的特点及本质
一个View视图中都包含Scroller方法,Scroller的本质是在滑动时,仅滑动View中的内容,而不是滑动整个View视图。
二、ViewDragHelper的特点
ViewDragHelper主要用于简化View视图的拖拽相关操作,从Touch事件的拦截到Touch事件的分发,可通过ViewDragHelper进行处理,具体如何使用,代码如下所示。
在自定义View中,首先需要初始化ViewDragHelper实例,并注册ViewDragHelper中的CallBack回调操作,在处理View视图的拖拽过程中,需要在CallBack回调中重写用于处理横向拖拽和垂直拖拽的越界问题,并处理拖拽状态发生改变,代码如下所示。
这里写图片描述
处理拖拽过程中水平方向的越界问题
这里写图片描述
处理拖拽过程中垂直方向的越界问题
这里写图片描述
处理拖拽过程中状态更新问题
这里需要注意的是,当通过ViewDragHelper处理视图拖拽操作时,需要对Touch事件进行拦截,并进行派发,拦截和派发都要由ViewDragHelper进行拦截,如果不进行此处理,在ViewDragHelper中自定义的视图拖拽效果,将不会实现。以下是代码是在自定义View中,重写了onInterceptTouchEvent方法,并通过ViewDragHelper实例,首先对Touch事件中的MotionEvent进行了拦截。
这里写图片描述
拦截Touch事件后,接下来在自定义View中重写onTouchEvent方法处理当前View对Touch事件的派发,将Touch事件交给ViewDragHelper进行处理,代码如下所示。
这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值