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

来源:互联网 发布:linux下网络配置文件 编辑:程序博客网 时间:2024/04/29 23:30

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进行处理,代码如下所示。
这里写图片描述

阅读全文
0 0
原创粉丝点击