如题,有没有办法,在打开特定页面时隐藏菜单,比如通过链接直接打开某个页面,就不需要菜单了
可以用 UI Event 在两个页面之间通信,MainView 监听到需要关闭菜单的事件,就操作菜单:
public class MainView extends StandardMainView {
// 定义主菜单事件类型
public static class SideMenuToggleEvent extends ApplicationEvent{
private boolean isCollapsed;
public SideMenuToggleEvent(Object source,boolean isCollapsed) {
super(source);
this.isCollapsed = isCollapsed;
}
public boolean isCollapsed() {
return isCollapsed;
}
}
// 监听事件,设置菜单状态
@EventListener
private void sideMenuCollapseChanged(SideMenuToggleEvent event) {
getContent().setDrawerOpened(!event.isCollapsed());
}
}
然后在需要隐藏菜单的view中:
@Autowired
private UiEventPublisher uiEventPublisher;
@Subscribe
public void onReady(final ReadyEvent event) {
uiEventPublisher.publishEvent(new MainView.SideMenuToggleEvent(this,true));
}