HarmonyOS实战开辟:Navigation(组件导航)

打印 上一主题 下一主题

主题 1046|帖子 1046|积分 3138

Navigation组件一样平常作为页面的根容器,包罗单页面、分栏和自顺应三种表现模式。Navigation组件适用于模块内页面切换,一次开辟,多端摆设场景。通过组件级路由本领实现更加天然流畅的转场体验,并提供多种标题栏样式来呈现更好的标题和内容联动效果。一次开辟,多端摆设场景下,Navigation组件可以或许自动适配窗口表现大小,在窗口较大的场景下自动切换分栏展示效果。
Navigation组件的页面包罗主页和内容页。主页由标题栏、内容区和工具栏构成,可在内容区中使用NavRouter子组件实现导航栏功能。内容页紧张表现NavDestination子组件中的内容。
NavRouter是共同Navigation使用的特别子组件,默认提供点击响应处理,不需要开辟者自界说点击事故逻辑。NavRouter有且仅有两个子组件,此中第二个子组件必须是NavDestination。NavDestination是共同NavRouter使用的特别子组件,用于表现Navigation组件的内容页。当开辟者点击NavRouter组件时,会跳转到对应的NavDestination内容区。
设置页面表现模式

Navigation组件通过mode属性设置页面的表现模式。


  • 自顺应模式
    Navigation组件默认为自顺应模式,此时mode属性为NavigationMode.Auto。自顺应模式下,当装备宽度大于520vp时,Navigation组件接纳分栏模式,反之接纳单页面模式。
  1. Navigation() {
  2.   ...
  3. }
  4. .mode(NavigationMode.Auto)
复制代码


  • 单页面模式
    图1 单页面结构表示图  


    将mode属性设置为NavigationMode.Stack,Navigation组件即可设置为单页面表现模式。
  1. Navigation() {
  2.   ...
  3. }
  4. .mode(NavigationMode.Stack)
复制代码




  • 分栏模式
    图2 分栏结构表示图


    将mode属性设置为NavigationMode.Split,Navigation组件即可设置为分栏表现模式。
  1. @Entry
  2. @Component
  3. struct NavigationExample {
  4.   @State TooTmp: ToolbarItem = {'value': "func", 'icon': "./image/ic_public_highlights.svg", 'action': ()=> {}}
  5.   private arr: number[] = [1, 2, 3];
  6.   build() {
  7.     Column() {
  8.       Navigation() {
  9.         TextInput({ placeholder: 'search...' })
  10.           .width("90%")
  11.           .height(40)
  12.           .backgroundColor('#FFFFFF')
  13.         List({ space: 12 }) {
  14.           ForEach(this.arr, (item:string) => {
  15.             ListItem() {
  16.               NavRouter() {
  17.                 Text("NavRouter" + item)
  18.                   .width("100%")
  19.                   .height(72)
  20.                   .backgroundColor('#FFFFFF')
  21.                   .borderRadius(24)
  22.                   .fontSize(16)
  23.                   .fontWeight(500)
  24.                   .textAlign(TextAlign.Center)
  25.                 NavDestination() {
  26.                   Text("NavDestinationContent" + item)
  27.                 }
  28.                 .title("NavDestinationTitle" + item)
  29.               }
  30.             }
  31.           }, (item:string):string => item)
  32.         }
  33.         .width("90%")
  34.         .margin({ top: 12 })
  35.       }
  36.       .title("主标题")
  37.       .mode(NavigationMode.Split)
  38.       .menus([
  39.         {value: "", icon: "./image/ic_public_search.svg", action: ()=> {}},
  40.         {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}},
  41.         {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}},
  42.         {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}},
  43.         {value: "", icon: "./image/ic_public_add.svg", action: ()=> {}}
  44.       ])
  45.       .toolbarConfiguration([this.TooTmp, this.TooTmp, this.TooTmp])
  46.     }
  47.     .height('100%')
  48.     .width('100%')
  49.     .backgroundColor('#F1F3F5')
  50.   }
  51. }
复制代码


设置标题栏模式

标题栏在界面顶部,用于呈现界面名称和操纵入口,Navigation组件通过titleMode属性设置标题栏模式。


  • Mini模式 普通型标题栏,用于一级页面不需要突出标题的场景。
    图3 Mini模式标题栏  


  1. Navigation() {
  2.   ...
  3. }
  4. .titleMode(NavigationTitleMode.Mini)
复制代码


  • Full模式 强调型标题栏,用于一级页面需要突出标题的场景。
    图4 Full模式标题栏  


  1. Navigation() {
  2.   ...
  3. }
  4. .titleMode(NavigationTitleMode.Full)
复制代码
设置菜单栏

菜单栏位于Navigation组件的右上角,开辟者可以通过menus属性举行设置。menus支持Array<NavigationMenuItem>和CustomBuilder两种参数范例。使用Array<NavigationMenuItem>范例时,竖屏最多支持表现3个图标,横屏最多支持表现5个图标,多余的图标会被放入自动生成的更多图标。
图5 设置了3个图标的菜单栏  


  1. let TooTmp: NavigationMenuItem = {'value': "", 'icon': "./image/ic_public_highlights.svg", 'action': ()=> {}}
  2. Navigation() {
  3.   ...
  4. }
  5. .menus([TooTmp,
  6.   TooTmp,
  7.   TooTmp])
复制代码
图6 设置了4个图标的菜单栏  


  1. let TooTmp: NavigationMenuItem = {'value': "", 'icon': "./image/ic_public_highlights.svg", 'action': ()=> {}}
  2. Navigation() {
  3.   ...
  4. }
  5. .menus([TooTmp,
  6.   TooTmp,
  7.   TooTmp,
  8.   TooTmp])
复制代码
设置工具栏

工具栏位于Navigation组件的底部,开辟者可以通过toolBar属性举行设置。
图7 工具栏  


  1. let TooTmp: ToolbarItem = {'value': "func", 'icon': "./image/ic_public_highlights.svg", 'action': ()=> {}}
  2. let TooBar: ToolbarItem[] = [TooTmp,TooTmp,TooTmp]
  3. Navigation() {
  4.   ...
  5. }
  6. .toolbarConfiguration(TooBar)
复制代码
末了

有许多小同伴不知道学习哪些鸿蒙开辟技术?不知道需要重点掌握哪些鸿蒙应用开辟知识点?而且学习时频繁踩坑,最终浪费大量时间。以是有一份实用的鸿蒙(HarmonyOS NEXT)资料用来跟着学习黑白常有须要的。 
这份鸿蒙(HarmonyOS NEXT)资料包罗了鸿蒙开辟必掌握的核心知识要点,内容包罗了ArkTS、ArkUI开辟组件、Stage模子、多端摆设、分布式应用开辟、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开辟、鸿蒙项目实战等等)鸿蒙(HarmonyOS NEXT)技术知识点。
盼望这一份鸿蒙学习资料可以或许给各人带来帮助,有需要的小同伴自行领取,限时开源,先到先得~无套路领取!!
获取这份完整版高清学习门路,请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙(HarmonyOS NEXT)最新学习门路




  •  HarmonOS根本技能



  • HarmonOS就业必备技能 

  •  HarmonOS多媒体技术



  • 鸿蒙NaPi组件进阶



  • HarmonOS高级技能



  • 初识HarmonOS内核 

  • 实战就业级装备开辟

有了门路图,怎么能没有学习资料呢,小编也准备了一份团结鸿蒙官方发布笔记整理收纳的一套体系性的鸿蒙(OpenHarmony )学习手册(共计1236页)鸿蒙(OpenHarmony )开辟入门讲授视频,内容包罗:ArkTS、ArkUI、Web开辟、应用模子、资源分类…等知识点。
获取以上完整版高清学习门路,请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开辟入门讲授视频》


《鸿蒙生态应用开辟V2.0白皮书》


《鸿蒙 (OpenHarmony)开辟根本到实战手册》

OpenHarmony北向、南向开辟环境搭建

 《鸿蒙开辟根本》



  • ArkTS语言
  • 安装DevEco Studio
  • 运用你的第一个ArkTS应用
  • ArkUI声明式UI开辟
  • .……

 《鸿蒙开辟进阶》



  • Stage模子入门
  • 网络管理
  • 数据管理
  • 电话服务
  • 分布式应用开辟
  • 通知与窗口管理
  • 多媒体技术
  • 安全技能
  • 任务管理
  • WebGL
  • 国际化开辟
  • 应用测试
  • DFX面向将来设计
  • 鸿蒙体系移植和裁剪定制
  • ……

《鸿蒙进阶实战》



  • ArkTS实践
  • UIAbility应用
  • 网络案例
  • ……

 获取以上完整鸿蒙HarmonyOS学习资料,请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结

总的来说,华为鸿蒙不再兼容安卓,对中年步伐员来说是一个挑战,也是一个时机。只有积极应对变化,不停学习和提拔本身,他们才气在这个变革的时代中立于不败之地。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表