我有一个带有 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();
程序有问题:
dlg.ShowDialog(cp)
。它始终显示在主菜单的左上角。openSideMenu()
调用是异步的,因为涉及动画。您启动了该动画,但在菜单有机会显示之前就将其处理掉了。
不幸的是,目前无法在侧边菜单实际显示时获取事件。但是,我向
Toolbar
添加了以下调用: boolean isSideMenuShowing()
作为 此提交的一部分。
您可以使用计时器并等待此方法返回 true,此时您可以继续演练的逻辑。此提交应成为 2024 年 1 月 12 日发布的一部分。