codenameone - 从 ActionEvent 发送到 DragOverListener 的 y 坐标*减小*,即使仅向下拖动也是如此
问题描述
如果您尝试执行下面的小代码示例,您可以看到给定拖动标签上的 dragOverListener每隔两次就会使用先前的 y 值调用一次。
我猜这是由于 Component:private void pointerDragged(final int x, final int y, final Object currentPointerPress)
中的代码创建了一个run()
调用pointerDragged
并执行两次(可能与以下 x,y 坐标交错)。
这似乎是一个不受欢迎的副作用,它给我的代码带来了问题,因为我使用连续 y 值之间的差异来确定被拖动的元素是向上还是向下拖动。
或者,如果您对拖动元素确定其拖动方向的另一种可靠方法有建议,那也很好。
//try to drag any element in the list downwards. Notice that every second y value will refer to the previous (smaller) value of y
Form hi1 = new Form();
hi1.setLayout(BoxLayout.y());
for (int i = 0; i < 40; i++) {
Label l = new Label("Label " + i);
l.setDraggable(true);
l.setDropTarget(true);
l.addDragOverListener((e) -> {
Log.p(l.getText()+", y=" + e.getY());
});
hi1.add(l);
}
hi1.show();
```
解决方案
推荐阅读
- react-native - 将焦点转移到下一个 TextInput [error = this2.refs.LastName.focus 不是函数]
- javascript - “TypeError: fsevents is not a constructor”——已经尝试了一堆解决方案
- c++ - 如何在不使用 tensorflow 的情况下构建 tf_tensor 并将其提供给我的 docker 服务器
- ios - 通过描述文件管理器作为 MDM 更新 iOS
- c++ - 打包结构和不打包没有代码重复
- asp.net-core-2.0 - DevOps 管道 - 从 Azure KeyVault 映射环境变量
- java - 使用 selenium 为 firefox 设置代理身份验证
- android - 使用 groupid com.android.support 和 androidx.* 的依赖不能合并但是找到 IdeMavenCoordinates
- oracle-apex - APEX_ITEM POPUP 引用另一个 apex_item
- reporting-services - SSRS - 行后不需要的空格