codenameone - 监听侧面菜单/汉堡菜单点击事件

标签 codenameone

我想检测何时单击侧面菜单或汉堡菜单。

这是来自一个不起作用的准系统 hello world 项目的代码:

    Form hi = new Form("Hi World");
    Toolbar bar = new Toolbar();
    hi.setToolbar(bar);
    bar.addCommandToSideMenu(new Command("test 1"));
    bar.addCommandToSideMenu(new Command("test 2"));
    hi.addComponent(new Label("Hi World"));

    bar.getMenuBar().addPointerPressedListener(new ActionListener(){
        @Override
        public void actionPerformed(ActionEvent evt) {
           System.out.println("Side menu or Hamburner Menu is clicked");
        }
    });
    hi.show();

我预计当我单击侧面菜单或汉堡菜单时会看到打印的字符串。但事实并非如此。

我如何监听汉堡菜单点击事件。

谢谢

3lix

最佳答案

由于工具栏只是表单顶部的一个 BorderLayout 容器,因此您可以找到侧面菜单按钮并在其上添加监听器。

Button sideBtn = (Button)((BorderLayout)bar.getLayout()).getEast();

请注意,这是一个未记录的 API,因此将来可能会损坏,侧边按钮出于某种原因没有故意公开,请重新考虑您要执行的操作。

关于codenameone - 监听侧面菜单/汉堡菜单点击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39909501/

相关文章:

codenameone - 如何在 Codename One 中触发属性更改监听器

java - Sencha、Touc4J、Codenameone 和 Phonegap?

java - 为什么 JSONParser 总是返回一个 double 值?

ios - Codename One 中使用 native code 时参数可以随意命名吗?

codenameone - CN1 - Dialog.dispose() 导致父窗体转到 "back"

codenameone - iOS 中登录表单显示几秒钟

java - 代号一键点击问题

android - CodenameOne APK 未对齐

java - 如何清理代号为 one 的文本区域中的文本?

ios - 代号一 - 无法从真实设备上的套接字读取