HarmonyOS 鸿蒙Next navigationDemo

发布于 1周前 作者 yuanlaile 来自 鸿蒙OS

HarmonyOS 鸿蒙Next navigationDemo

就是从广告页到登录页在到主页,主页有几个Tab页面,都是使用Navigation的Demo

2 回复

[@Entry](/user/Entry)
[@Component](/user/Component)
struct Index {
 [@Provide](/user/Provide)('pageInfos') pageInfos: NavPathStack = new NavPathStack()
 isLogin: boolean = false;
 [@State](/user/State) fontColor: string = '#182431'
 [@State](/user/State) selectedFontColor: string = '#007DFF'
 [@State](/user/State) currentIndex: number = 0
 private controller: TabsController = new TabsController()

 [@Builder](/user/Builder)
 PagesMap(name: string) {
   if (name == 'Login') {
     Login()
   }
 }

 [@Builder](/user/Builder)
 tabBuilder(index: number, name: string) {
   Column() {
     Text(name)
       .fontColor(this.currentIndex === index ? this.selectedFontColor : this.fontColor)
       .fontSize(16)
       .fontWeight(this.currentIndex === index ? 500 : 400)
       .lineHeight(22)
       .margin({ top: 17, bottom: 7 })
     Divider().strokeWidth(2).color('#007DFF').opacity(this.currentIndex === index ? 1 : 0)
   }.width('100%')
 }

 build() {
   Navigation(this.pageInfos) {
     Button('登录模块').width('80%').margin(2).onClick(() => {
       this.pageInfos.pushPathByName('Login', '');
     })
     NavRouter() {
       Button('页1').width('80%').margin(2)
       NavDestination() {
         Text("页1")
       }
     }

     NavRouter() {
       Button('页2').width('80%').margin(2)
       NavDestination() {
         Text("页2")
       }
     }

     NavRouter() {
       Button('页3').width('80%').margin(2)
       NavDestination() {
         Text("页3")
       }
     }

     Tabs({ barPosition: BarPosition.Start, index: this.currentIndex, controller: this.controller }) {
       TabContent() {
         Column().width('100%').height('100%').backgroundColor('#00CB87')
       }.tabBar(this.tabBuilder(0, 'green'))

       TabContent() {
         Column().width('100%').height('100%').backgroundColor('#007DFF')
       }.tabBar(this.tabBuilder(1, 'blue'))

       TabContent() {
         Column().width('100%').height('100%').backgroundColor('#FFBF00')
       }.tabBar(this.tabBuilder(2, 'yellow'))

       TabContent() {
         Column().width('100%').height('100%').backgroundColor('#E67C92')
       }.tabBar(this.tabBuilder(3, 'pink'))
     }
     .vertical(false)
     .barMode(BarMode.Fixed)
     .barWidth(360)
     .barHeight(56)
     .animationDuration(400)
     .onChange((index: number) => {
       this.currentIndex = index
     })
     .width(360)
     .height(296)
     .margin({ top: 52 })
     .backgroundColor('#F1F3F5')
   }.navDestination(this.PagesMap)
 }
}

[@Component](/user/Component)
struct Login {
 build() {
   NavDestination() {
     Navigation() {
       NavRouter() {
         Button('功能1').width('80%').margin(2)
         NavDestination() {
           Text("页1")
         }
       }

       NavRouter() {
         Button('功能2').width('80%').margin(2)
         NavDestination() {
           Text("页2")
         }
       }

       NavRouter() {
         Button('功能3').width('80%').margin(2)
         NavDestination() {
           Text("页3")
         }
       }
     }
   }
 }
}

整体navigation demo可以参考该链接
https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/ts-basic-components-navigation-V5

更多关于HarmonyOS 鸿蒙Next navigationDemo的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


HarmonyOS 鸿蒙Next navigationDemo 主要展示了鸿蒙系统在导航功能上的开发与应用。该Demo通过鸿蒙系统的分布式特性,实现了跨设备的导航体验,能够在不同的终端上无缝切换和展示导航信息。

在HarmonyOS 鸿蒙Next navigationDemo中,开发者可以利用鸿蒙提供的API接口,实现导航数据的获取、处理和展示。这些数据可以包括位置信息、路线规划、实时路况等,确保用户在任何设备上都能获得准确、及时的导航服务。

Demo中通常还会包含用户界面的设计,包括地图的展示、导航按钮的布置、语音提示的设置等,以确保用户能够方便地使用导航功能。此外,为了提升用户体验,开发者还需要考虑导航过程中的实时性、准确性以及设备间的协同工作等问题。

值得注意的是,HarmonyOS 鸿蒙Next navigationDemo的开发过程中,开发者需要遵循鸿蒙系统的开发规范,确保应用的稳定性和安全性。同时,也需要对鸿蒙系统的分布式框架有一定的了解,以便更好地利用鸿蒙系统的优势,实现跨设备的导航功能。

如果开发者在开发过程中遇到任何问题,可以参考鸿蒙系统的官方文档和示例代码,或者通过鸿蒙系统的开发者社区寻求帮助。如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html。

回到顶部