本代码通过OnDragListener实现安卓的拖拽。
OnDragListener
API 11 加⼊入的⼯工具类,⽤用于拖拽操作。
使⽤用场景:⽤用户的「拖起 -> 放下」操作,重在内容的移动。可以附加拖拽数据 不不需要写⾃自定义 View,使⽤用 startDrag() / startDragAndDrop() ⼿手动开启拖拽
拖拽的原理理是创造出⼀一个图像在屏幕的最上层,⽤用户的⼿手指拖着图像移动
OnDragListener 内部只有⼀一个⽅方法:onDrag()
onDragEvent() ⽅方法也会收到拖拽回调(界⾯面中的每个 View 都会收到)
ViewDragHelper
2015 年年的 support v4 包中新增的⼯工具类,⽤用于拖拽操作。
使⽤用场景:⽤用户拖动 ViewGroup 中的某个⼦子 View
需要应⽤用在⾃自定义 ViewGroup 中调⽤用 ViewDragHelper.shouldInterceptTouchEvent() 和 processTouchEvent(),程序会⾃自动开启拖拽
拖拽的原理理是实时修改被拖拽的⼦子 View 的 mLeft, mTop, mRight, mBottom 值
package com.aiyuba.drag;
import android.content.Context;
import android.util.AttributeSet;
import android.util.Log;
import android.view.DragEvent;
import android.view.View;
import android.view.ViewGroup;