Codenameone 如何处理组件及其容器中的指针事件?

Codenameone 如何处理组件及其容器中的指针事件?,codenameone,Codenameone,假设我在一个BoxLayout.Y-scrollable-Y容器中有一个自定义滑块组件,其中很多都是。自定义滑块组件覆盖所有容器 我想要的是,滑块组件在X轴上处理指针,同时仍然可以拖动容器,以便滚动“列表”,就像根本没有滑块组件一样 我能想到的实现这一目标的唯一方法似乎是黑客。我会通过覆盖滑块组件中的一些方法来实现这一点,它会将指针事件转发到其容器,如下所示: @Override protected int getDragRegionStatus(int x, i

假设我在一个BoxLayout.Y-scrollable-Y容器中有一个自定义滑块组件,其中很多都是。自定义滑块组件覆盖所有容器

我想要的是,滑块组件在X轴上处理指针,同时仍然可以拖动容器,以便滚动“列表”,就像根本没有滑块组件一样

我能想到的实现这一目标的唯一方法似乎是黑客。我会通过覆盖滑块组件中的一些方法来实现这一点,它会将指针事件转发到其容器,如下所示:

        @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一起工作

但是你如何让它工作呢

为什么是黑客

如果您试图实现一种特殊情况,可以通过重写表单指针事件或将侦听器绑定到表单本身来实现

为什么是黑客


如果您试图实现一种特殊情况,可以通过重写表单指针事件或将侦听器绑定到表单本身来实现

你没有回答这个问题。我非常明确地问你将如何实现这一目标。但要回答您关于我的问题的问题:我将指针事件转发到父容器的“解决方案”依赖于可能发生变化的内部结构,而我并不完全理解这些内部结构。所以是的,我称之为黑客。你没有回答这个问题。我非常明确地问你将如何实现这一目标。但要回答您关于我的问题的问题:我将指针事件转发到父容器的“解决方案”依赖于可能发生变化的内部结构,而我并不完全理解这些内部结构。是的,我称之为黑客。