如何在Codename中动态设置SideMenuBar的可见性?

时间:2015-12-22 21:42:25

标签: java codenameone

使用codenameone中的Toolbar类,如何动态设置SideMenuBar的可见性?

我正在使用WebBrowser组件,我只希望在登录后可以访问SideMenu。

当我简单地将命令放在SideMenuBar(方法1)上时,我实现了我想要的行为,但是现在我已经切换到使用Toolbar类来获得LnF优势(方法2),{{1}似乎没有观察到主题常数。

hideLeftSideMenuBool

1 个答案:

答案 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;
    }
});