2016-09-21 99 views
1

我在我的应用程序中有侧面菜单。但由于我在标题栏中有很多图标,我只想以特定的形式保留侧面菜单图标。我从主题常量中使用了hideLeftSideMenuBool true,但图标从所有表单中消失。如何仅显示特定形式的侧面菜单图标

更新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); 
} 

回答

0

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

仅当您将命令/组件添加到侧面菜单时才会显示菜单。如果你不添加它们,它不会显示。

如果您希望菜单按钮只出现在某些表单上,您需要完全禁用它,并在您想要显示的表单的左侧添加一个自己的菜单按钮。像这样的东西应该工作:

frm.getToolbar().addMaterialCommandToLeftSide("", FontImage.MATERIAL_MENU, e -> ((SideMenuBar)frm.getMenuBar()).openMenu(null)); 
+0

是的我有所有的形式的命令。但我只想保留主屏幕和其他几种形式的侧面菜单图标。在没有侧面菜单图标的表单中,可以轻扫并查看侧面菜单。这是不可能的。或者,如果这很难,我只想在家里的侧面菜单图标,但在所有形式的侧面菜单命令。 – beck

+0

假设您使用工具栏,如果您没有物理调用addCommandToSideMenu或类似特定形式的东西,侧面菜单将不会出现。 –

+0

其实我需要所有形式的侧面菜单,但没有标题栏中的侧面菜单图标。如果用户滑动设备的左侧屏幕,会出现侧面菜单。但是,我只需要在主屏幕上显示sidemenu图标。我怎样才能做到这一点? – beck

相关问题