horizontalMenu - 水平菜单

horizontalMenu 组件用于展示包含层级下拉子菜单的水平菜单栏。

视图创建向导 中的 Main view with top menu 模板用的就是 horizontalMenu。如果需要用新的视图替换已有的主视图,需要在向导的第一步勾选 Use as default main view。之后,Studio 会替换所有视图 @Route 注解中的 layout 属性,并设置 jmix.ui.main-view-id 应用程序属性为新视图的 id。

也可以与其他可视化组件一样,用在任何视图中。

  • XML 元素:horizontalMenu

  • Java 类:HorizontalMenu

基本用法

在 XML 中添加组件:

<horizontalMenu id="horizontalMenu" width="100%"/>
horizontal menu

也可以在 Java 控制器中创建并添加组件:

@Autowired
private UiComponents uiComponents;
@Autowired
private ApplicationContext applicationContext;
@ViewComponent
private VerticalLayout navigation;

@Subscribe
public void onInit(final InitEvent event) {
    HorizontalMenu horizontalMenu = uiComponents.create(HorizontalMenu.class);

    MenuConfigHorizontalMenuItemProvider itemProvider =
            applicationContext.getBean(MenuConfigHorizontalMenuItemProvider.class);
    horizontalMenu.setMenuItemProvider(itemProvider);
    navigation.add(horizontalMenu);

    itemProvider.load();
}

XML 属性

loadMenuConfig

loadMenuConfig 属性用来控制是否从 菜单配置 中加载菜单结构。默认为 true,也就是说默认会从 MenuConfig 中加载菜单。如果需要使用不同的菜单项,需要先设置 loadMenuConfigfalse

事件和处理器

在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 CodeGenerate 菜单(Alt+Insert / Cmd+N)生成。