如何通过代码在主菜单上显示菜单按钮?

问题描述 投票:0回答:1

我有一个带有 2 个菜单按钮的主菜单 - 设置 Btn 和 featureBtn。 vbf是主要形式。

我尝试点击主菜单中的settingBtn按钮,打开设置表单,执行一些操作,点击主菜单中的featureBtn,然后通过代码打开featureForm。

        vbf.getToolbar().openSideMenu();
    timer = UITimer.timer(200, true, ()->{
        if (vbf.getToolbar().isSideMenuShowing()){
            Component cp = VisionClass.settingBtn;
            Dialog dlg = new Dialog("settingBtn Clicked");
            dlg.ShowDialog(cp, );
            vbf.getToolbar().closeSideMenu();
            timer.cancel();
    
        }
    });
    vbf.getToolbar().openSideMenu();
    cmp = VisionClass.featureBtn;
    Dialog dlg = new Dialog("featureBtn Clicked");
    dlg.ShowDialog(cp);
    vbf.getToolbar().closeSideMenu(); 

程序有问题:

    如果按钮位于主菜单中,则按钮位置不会显示
  1. dlg.ShowDialog(cp)
    。它始终显示在主菜单的左上角。
  2. 该过程不断打开和关闭菜单多次。我无法将所有代码放入 UITimer 中。因为UI定时器只能打开一次侧边菜单。
codenameone
1个回答
0
投票

openSideMenu()
调用是异步的,因为涉及动画。您启动了该动画,但在菜单有机会显示之前就将其处理掉了。

不幸的是,目前无法在侧边菜单实际显示时获取事件。但是,我向

Toolbar
添加了以下调用:
boolean isSideMenuShowing()
作为 此提交的一部分。

您可以使用计时器并等待此方法返回 true,此时您可以继续演练的逻辑。此提交应成为 2024 年 1 月 12 日发布的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.