Codenameone 如何处理组件及其容器中的指针事件?
假设我在一个BoxLayout.Y-scrollable-Y容器中有一个自定义滑块组件,其中很多都是。自定义滑块组件覆盖所有容器 我想要的是,滑块组件在X轴上处理指针,同时仍然可以拖动容器,以便滚动“列表”,就像根本没有滑块组件一样 我能想到的实现这一目标的唯一方法似乎是黑客。我会通过覆盖滑块组件中的一些方法来实现这一点,它会将指针事件转发到其容器,如下所示:Codenameone 如何处理组件及其容器中的指针事件?,codenameone,Codenameone,假设我在一个BoxLayout.Y-scrollable-Y容器中有一个自定义滑块组件,其中很多都是。自定义滑块组件覆盖所有容器 我想要的是,滑块组件在X轴上处理指针,同时仍然可以拖动容器,以便滚动“列表”,就像根本没有滑块组件一样 我能想到的实现这一目标的唯一方法似乎是黑客。我会通过覆盖滑块组件中的一些方法来实现这一点,它会将指针事件转发到其容器,如下所示: @Override protected int getDragRegionStatus(int x, i
@Override
protected int getDragRegionStatus(int x, int y) {
return Component.DRAG_REGION_LIKELY_DRAG_XY;
}
@Override
public void pointerDragged(int x, int y) {
super.pointerDragged(x, y);
{
// Handle X-axis dragging here
}
boolean focusable = getParent().isFocusable();
try { // handle Y-axis dragging there
getParent().setFocusable(true);
getParent().pointerDragged(x, y);
} finally {
getParent().setFocusable(focusable);
}
}
我怀疑这是应该采取的方式。但正如上面所写的,这是我能想到的唯一方法,如何使它与代号1一起工作
但是你如何让它工作呢 为什么是黑客
如果您试图实现一种特殊情况,可以通过重写表单指针事件或将侦听器绑定到表单本身来实现 为什么是黑客
如果您试图实现一种特殊情况,可以通过重写表单指针事件或将侦听器绑定到表单本身来实现 你没有回答这个问题。我非常明确地问你将如何实现这一目标。但要回答您关于我的问题的问题:我将指针事件转发到父容器的“解决方案”依赖于可能发生变化的内部结构,而我并不完全理解这些内部结构。所以是的,我称之为黑客。你没有回答这个问题。我非常明确地问你将如何实现这一目标。但要回答您关于我的问题的问题:我将指针事件转发到父容器的“解决方案”依赖于可能发生变化的内部结构,而我并不完全理解这些内部结构。是的,我称之为黑客。