首页 文章

Codename在容器内监听的一个事件,其中包含更多子容器

提问于
浏览
1

我正在使用Codename One开发移动应用程序 .

我有一个外部容器,我通过调用方法 addPointerReleasedListener 添加了 ActionListener .

还有更多的内部容器没有添加任何监听器 .

为了显示:

outer-Container (added `addPointerReleasedListener` to it)
 - An Image Container (NO listener added)
 - A Text Container (NO listener added)


--------------------------------------------------------------
| |            |                                             |
| |            |                                             |
| |   Image    |  Some Text here                             |
| |            |                                             |
| |            |                                             |
--------------------------------------------------------------
                                    ^        ^        ^
                                    works only if I click/press
                                    here

我注意到,为了调用事件,我必须单击/按下没有占用任何内部容器的区域 . 也就是说,如果我点击/按下任何文本和图像区域(因为没有添加任何监听器),它确实可以工作 not . 我必须专门点击/按下外部容器的"empty"区域 . 显然,这没有意义,因为当用户点击/按下其中的任何位置时,我想让整个容器以相同的方式做出反应 .

实现这个的最佳方法/实践是什么? (我觉得将相同的监听器添加到许多内部容器有点多余 . )

1 回答

  • 3

    您的方法无法在真实设备上正常运行 .

    创建一个按钮并将 actionListener 添加到该按钮并将外部容器的 leadComponent 设置为该按钮 .

    Button btn = new Button("");
    btn.addActionListener(e -> {
        //Your action here
    });
    outerContainer.setLeadComponent(btn);
    

    您不必将该按钮添加到容器中,只需将其设置为leadComponent即可 .

相关问题