其实要实现拖拽的控件是非常简单的事情,和让控件支持点击一样简单!我们只需要对View类的
onDragEvent()
dispatchDragEvent()
setOnDragListener()
进行封装就行了,是不是和触摸事件的回调差不多呢?
onTouchEvent()
dispatchTouchEvent()
setOnTouchListener()
所以其用法和处理触摸事件也差不多,可以传入监听器,也可以扩展View类重写事件函数。
我们可以通过View.startDarg(ClipData data, DragShadowBuilder shadowBuilder, Object myLocalState, int flags)来开始拖拽。
这里需要我们传入一个DragShadowBuilder对象,DragShadow就是拖拽阴影,会在你拖动的时候显示出来,
所以DragShadowBuilder有一个传View的构造函数-new DragShadowBuilder(View)。