自定义View笔记(三) --- ViewDragHelper
来源:互联网 发布:mac下安装配置redis4 编辑:程序博客网 时间:2024/05/16 18:48
注:该笔记是整理学习鸿洋大神自定义View系列博客的部分知识点。
ViewDragHelper 可以用于自定义 ViewGroup 中子 View 的拖动等效果。
使用方式:
1.创建实例
在构造方法中调用ViewDragHelper.create(this, 1.0f, new ViewDragHelper.Callback(){ });
创建实例时,需要传入三个参数,第一个为当前的ViewGroup,第二个为sensitivity主要用于设置touchSlop,可见传入越大,mTouchSlop的值就会越小。第三个参数就是Callback,在用户的触摸过程中会回调相关方法
- 1
2.设置触摸事件
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
3.实现 Callback() 方法
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
方法解释:
tryCaptureView()
如果返回的是true,则表示在该 ViewGroup 下的所有子 View 都可以移动;如果返回的是某一个子 View 时,表示只能该 View 可以移动。
clampViewPositionHorizontal(),clampViewPositionVertical()
可以在该方法中对child移动的边界进行控制,left , top 分别为即将移动到的位置
onViewDragStateChanged()
当ViewDragHelper状态发生变化时回调(IDLE,DRAGGING,SETTING[自动滚动时])
onViewPositionChanged()
onViewCaptured()
当captureview被捕获时回调
onViewReleased()
手指释放时,回调方法
onEdgeTouched()
当触摸到边界时回调
onEdgeLock()
true的时候会锁住当前的边界,false则unLock
onEdgeDragStarted()
边界拖动时,回调方法
getOrderedChildIndex()
改变同一个坐标(x,y)去寻找captureView位置的方法。(具体在:findTopChildUnder方法中)
getViewHorizontalDragRange()
控制横向手势事件能否正常捕获,返回大于0,表示正常捕获
getViewVerticalDragRange()
控制横向手势事件能否正常捕获,返回大于0,表示正常捕获
实例:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 自定义View笔记(三) --- ViewDragHelper
- 自定义View笔记(三) --- ViewDragHelper
- 自定义View(三) switch开关按钮 ViewDragHelper的使用初级
- 自定义ViewGroup笔记--ViewDragHelper
- 自定义View学习摘要笔记(三)
- ViewDragHelper自定义view保存view的位置
- ViewDragHelper实现自定义view侧滑菜单
- 2自定义View系列课程学习笔记——之Scroller和ViewDragHelper
- Android自定义View(五)ViewDragHelper完全解析 自定义ViewGroup神器
- Android 自定义View基础(六)--ViewDragHelper(侧滑栏)
- Android自定义View(三)继承View
- android 自定义view(三)
- 自定义控件View(三)
- android自定义view(三)
- Android 自定义View(三)
- 自定义可拖拽View(工具类ViewDragHelper的用法)
- 自定义View(仿QQ侧滑删除实现,ViewDragHelper)
- Android自定义View解析之自定义View类型(三)
- 深入理解Ribbon之源码解析
- zookeeper学习记录-06 Zookeeper JavaAPI操作
- Deep Learning:深度前馈神经网络(五)
- 一周五次课(10月20日)
- tornado学习之路
- 自定义View笔记(三) --- ViewDragHelper
- 演示文件IO的例子
- Linux终端部分快捷方式
- C++ 遗传学SFLA混合蛙跳算法
- PopupWindow在7.0上显示的坑
- linux 下 启动mysql服务出错!Starting MySQL.The server quit without updating PID file (XXX.pid)
- Java基础之JMX
- BZOJ 1009: [HNOI2008]GT考试(DP+KMP失配+矩阵快速幂)
- Android 能让你少走弯路的干货整理