使用codenameone中的Toolbar类,如何动态设置SideMenuBar的可见性?
我正在使用WebBrowser组件,我只希望在登录后可以访问SideMenu。
当我简单地将命令放在SideMenuBar(方法1)上时,我实现了我想要的行为,但是现在我已经切换到使用Toolbar类来获得LnF优势(方法2),{{1}似乎没有观察到主题常数。
hideLeftSideMenuBool
答案 0 :(得分:1)
仅使用工具栏API,您不必调用或更改任何主题常量。
使您的工具栏最终或在beforeShow()
方法之外声明它,以便您可以在内部方法shouldNavigate(String url)
内访问它。
您需要做的就是致电removeAll()
,然后重置标题并添加所需的组件。如果工具栏没有命令或标题,则默认情况下会隐藏它。
wb.setBrowserNavigationCallback(new BrowserNavigationCallback() {
public boolean shouldNavigate(String url) {
if ((url.indexOf("users/login") != -1)) {
toolbar.removeAll();
toolbar.setTitleComponent(new Label("My Form", "Title"));
toolbar.getComponentForm().revalidate();
} else {
//Do nothing, since I've already add the commands I want earlier
}
return true;
}
});