我需要模拟DragEvent
以进行测试。但是我无法访问DragEvent.obtain()
方法。
请提出一种方法,simulate DragEvent
以便我可以在 DragListener 的 onDrag() 方法中定义 DragEvent 的操作
对于 Touch MotionEvent,我们可以通过 MotionEvent.obtain() 并传递相关参数来实现,但是在 DragEvent 的情况下无法访问此方法
我需要模拟DragEvent
以进行测试。但是我无法访问DragEvent.obtain()
方法。
请提出一种方法,simulate DragEvent
以便我可以在 DragListener 的 onDrag() 方法中定义 DragEvent 的操作
对于 Touch MotionEvent,我们可以通过 MotionEvent.obtain() 并传递相关参数来实现,但是在 DragEvent 的情况下无法访问此方法
DragEvent.obtain()是一个尚未公开的内部 API 函数,如@hide注释所示。
作为一种解决方法,您可以从可打包对象http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/4.0.3_r1/android/view/DragEvent创建一个 DragEvent 。爪哇#488
DragEvent.CREATOR.createFromParcel(parcel);
Parcel parcel = Parcel.obtain();
parcel.writeInt(action);
parcel.writeFloat(x);
parcel.writeFloat(y);
parcel.writeInt(0); // Result
parcel.writeInt(0); // No Clipdata
parcel.writeInt(0); // No Clip Description
parcel.setDataPosition(0);
如果要添加 Clipdata,请参阅它的 createFromParcel() 方法。
在这里,我为您提供了一些非常好的教程,这些教程将指导您DragEvent
在 android 中实现。您可以参考它并为您的测试目的实施它。
已编辑的链接:
1) Link1
2) Link2
3) Drag Event 的开发者网站
希望它会帮助你。
谢谢。