如何仅在特定表单中显示侧面菜单图标

时间:2016-09-21 16:16:46

标签: codenameone

我的应用程序中有侧边菜单。但由于我在标题栏中有许多图标,我想只保留特定形式的侧面菜单图标。我在主题常量中使用了hideLeftSideMenuBool,但是图标从所有表单中消失。

更新1:侧面菜单底部的图标显示为没用。它应该出现在工具栏/标题栏中。

@Override
protected void beforeMenuForm(Form f) {
    Toolbar t = new Toolbar();
    t.setUIID("TitleArea");
    f.setToolBar(t);
    Label titleIcon = new Label();
    titleIcon.setIcon(theme.getImage("app-icon.png").scaledHeight(t.getHeight() + 50));
    titleIcon.setUIID("smallFont");
    t.setTitleComponent(titleIcon);

    showAllCommands(f);

    //the icon appears at the bottom of side menu itself that is of no use
    f.getToolbar().addMaterialCommandToSideMenu("", FontImage.MATERIAL_MENU, e -> ((SideMenuBar)f.getMenuBar()).openMenu(null));
}

public void showAllCommands(Form f) {
   Command home = new Command("  Home", homeIcon) {

        @Override
        public void actionPerformed(ActionEvent evt) {
            showForm("MenuForm", this);
        }
    };
    f.addCommand(home);
}

1 个答案:

答案 0 :(得分:1)

隐藏侧菜单标志是全局的。

只有在侧面菜单中添加命令/组件时才会出现菜单。如果你不添加它们就不会出现。

如果您希望菜单按钮仅显示在某些表单上,则需要完全禁用它,并将您自己的菜单按钮添加到要显示的表单的左侧。这样的事情应该有效:

toolbar.addMaterialCommandToLeftSide("", FontImage.MATERIAL_MENU, e -> toolbar.openSideMenu());