- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在使用 view.startDrag()
开始拖动操作。拖动时,事件会在 OnDragListener
中接收。我还使用 DragShadowBuilder
在拖动时显示 View B
的最后一张图像。
有没有办法停止或取消或中止某些外部事件或操作的拖动?例如,有 2 个 View ,View A
和 View B
,我将 View B
拖到 View A
上>。拖动时,由于某些外部事件或操作,我想取消拖动操作或取消 OnDragListener
(无需将手指从 view B
移开)。
DragShadowBuilder
的代码 fragment :
DragShadowBuilder shadowBuilder = new DragShadowBuilder(view) {
@Override
public void onDrawShadow(Canvas canvas) {
canvas.drawBitmap(b, 0, 0, new Paint());
super.onDrawShadow(canvas);
}
};
boolean dragSuccess = false;
dragSuccess = view.startDrag(null, shadowBuilder, view, 0);
OnDragListener
的代码 fragment :
private final class ViewDragListener implements OnDragListener {
@Override
public boolean onDrag(View v, DragEvent event) {
int action = event.getAction();
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
log("ACTION_DRAG_STARTED");
break;
case DragEvent.ACTION_DRAG_ENTERED:
log("ACTION_DRAG_ENTERED");
break;
case DragEvent.ACTION_DRAG_EXITED:
log("ACTION_DRAG_EXITED");
case DragEvent.ACTION_DROP:
log("ACTION_DROP");
mX = (int) event.getX();
mY = (int)event.getY();
break;
case DragEvent.ACTION_DRAG_ENDED:
log("ACTION_DRAG_ENDED");
//Doing some cleanup operations.
break;
case DragEvent.ACTION_DRAG_LOCATION:
log("ACTION_DRAG_LOCATION");
break;
default:
break;
}
return true;
}
}
最佳答案
我找不到任何技巧。我尝试发送 ACTION_UP 的 Action 事件,但它什么也没做。看起来只要用户的手指被按住,就不会中断事件层次结构。我在谷歌搜索中找不到任何帮助。
我只是设置了一个全局,等到拖动结束,然后继续。
关于android - Android中拖动操作时如何取消View.OnDragListener?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24140730/
我正在使用 view.startDrag() 开始拖动操作。拖动时,事件会在 OnDragListener 中接收。我还使用 DragShadowBuilder 在拖动时显示 View B 的最后一张
我正在制作一个带有自定义行和自定义适配器的 ListView 。我已将 OnTouchListener 和 OnDragListener 附加到 ListView 中的每个 View 。 如果拖放结果
我有一个扩展 DialogFragment 的类。我必须在拖动后立即获取对话的当前坐标。所以我在类中实现了 OnDragListener 并覆盖了 onDrag() 方法。但是我没有收到任何对 onD
我需要在使用 stopSelf() 激活监听器后停止此服务;然而,即使没有拖动事件,服务也会结束......在调用 StopService 之前,如何检测是否发生了拖动事件? m
我在我的应用程序中使用拖放功能。它工作正常。现在我在为 View 设置动画时遇到问题,如果 View 未放置在放置的 View 上,则 View 返回到其原始位置。 我已经通过 创建了我的阴影 Vie
如您所知,OnDragListener开始于 API 级别 11 我想使用它,但不幸的是,我不能,因为我的目标设备是 1.6 及更高版本(API 4)。 是否有任何替代的类似类/库/想法可能有帮助
我正在尝试弄清楚如何执行以下操作: 我有一个 Activity 和一个 fragment 充当一种抽屉导航(右侧)。在那个抽屉 fragment 中,我有一个 GridView 。目前,我可以长按该
我的应用程序有一个类 MarkedLine,它扩展了 View。此类的实例显示在 fragment 中。我希望用户能够做以下三件事: 通过“捏合”和“拉伸(stretch)”手势放大线条 触摸直线的任
我正在制作一个游戏应用程序,我需要在其中使用 onDraglistener 进行拖放,这是我在实现 onDraglistener 的类上所做的。 @Override public boolean
我正在使用 VideoView 播放视频。当我将它从原来的位置拖到新位置时,我想改变它的位置。我使用了以下代码: video_view.setOnDragListener(new OnDragList
我使用 onDragListener 在屏幕上拖动一个对象,这部分效果很好。但我还需要在拖动时检查屏幕的 x、y 坐标。我重写了 onTouch 方法,它也运行良好。但是一旦我拖动了对象,ontouc
我有一个使用 OnDragListener 的应用。 由于这仅在 API 级别 11 中引入,我正在寻找一个支持较低级别此功能的库(类似于 ActionBarSherlock for Fragment
我在使用 OnDragListener 时遇到了一个奇怪的问题。我的目标 View 很好地获取了 ACTION_DROP 事件并对其进行了处理;但它从不接收 ACTION_DRAG_STARTED 或
我正在尝试为谷歌地图 fragment 设置一个 onDrag 监听器,但无法触发拖动事件。由于 map 不直接支持拖动事件,我正在尝试为 View 实现一个拖动监听器。我知道 onMarkerDra
我是一名优秀的程序员,十分优秀!