目录

Navigation基础架构介绍

导航组件(Navigation)主要用于实现NavDestination页面间的跳转,支持在不同NavDestination间传递参数,提供灵活的跳转栈操作,从而更便捷地实现对不同页面的访问和复用。

标题栏

标题栏在界面顶部,用于呈现界面名称和操作入口,Navigation组件通过title属性设置标题内容,通过titleMode属性设置标题栏模式。NavDestination同样支持title属性用于设置标题内容。

Navigation未设置title、titleMode、menus等与标题、菜单栏相关的属性时,即使将hideBackButton设置为false,返回按钮也不会展示。

菜单栏

菜单栏位于组件的顶部,开发者可以通过menus属性设置Navigation的菜单栏。menus支持Array<NavigationMenuItem>和CustomBuilder两种参数类型。使用Array<NavigationMenuItem>类型时,竖屏最多支持显示3个图标,横屏最多支持显示5个图标,多余的图标会被放入自动生成的更多图标。NavDestination同样支持menus属性用于设置菜单栏。

图6 设置了3个图标的菜单栏

let menuItem: NavigationMenuItem  = {
  'value': 'func',
  'icon': 'ets/pages/navigation/template1/image/ic_public_add.svg',
  'action': () => {}
};
// ...
      Navigation(this.navPathStack) {
        // ...
      }
      .menus([menuItem, menuItem, menuItem])

图片也可以引用resources中的资源。

let menuItem: NavigationMenuItem  = {
  'value': 'func',
  'icon': 'resources/base/media/ic_public_add.svg',
  'action': () => {}
};
// ...
      Navigation(this.navPathStack) {
        // ...
      }
      .menus([menuItem, menuItem, menuItem])

图7 设置了4个图标的菜单栏

竖屏状态下菜单栏,最多支持显示3个按钮,当按钮超过3个时,多余的按钮会被折叠。

let menuItem: NavigationMenuItem  = {
  'value': 'func',
  'icon': 'ets/pages/navigation/template1/image/ic_public_add.svg',
  'action': () => {}
};
// ...
      Navigation(this.navPathStack) {
        // ...
      }
      // 竖屏最多支持显示3个图标,多余的图标会被放入自动生成的更多图标
      .menus([menuItem, menuItem, menuItem, menuItem])

工具栏

工具栏位于组件的底部,开发者可以通过toolbarConfiguration属性设置Navigation的工具栏。NavDestination同样支持toolbarConfiguration属性用于设置工具栏。

图8 工具栏

let toolTmp: ToolbarItem = {
  'value': 'func',
  'icon': 'ets/pages/navigation/template1/image/ic_public_highlights.svg',
  'action': () => {}
};
let toolBar: ToolbarItem[] = [toolTmp,toolTmp,toolTmp];
// ...
      Navigation(this.navPathStack) {
        // ...
      }
      .toolbarConfiguration(toolBar)