我正在使用Codename One开发移动应用。
我有一个外部容器,我通过调用方法ActionListener
添加了addPointerReleasedListener
。
还有更多内部容器未添加任何侦听器。
举例说明:
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
我注意到为了调用事件,我必须单击/按下没有占用任何内部容器的区域。也就是说,如果我点击/按下任何文本和图像区域(因为没有添加监听器),它不工作。我必须专门点击/按下外部容器的“空”区域。显然,这没有意义,因为当用户点击/按下其中的任何位置时,我想让整个容器以相同的方式做出反应。
实施此方法的最佳方法/实践是什么? (我发现将相同的侦听器添加到许多内部容器有点多余。)
答案 0 :(得分:3)
您的方法无法在真实设备上正常运行。
创建一个按钮并将actionListener
添加到该按钮,并将外部容器的leadComponent
设置为该按钮。
Button btn = new Button("");
btn.addActionListener(e -> {
//Your action here
});
outerContainer.setLeadComponent(btn);
您不必将该按钮添加到容器中,只需将其设置为leadComponent即可。