HarmonyOS 鸿蒙Next Navigation NavDestination 导航及路由

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

HarmonyOS 鸿蒙Next Navigation NavDestination 导航及路由

  • 首页MainPage 使用的NavDestination,底部导航tab有四个组件,这四个tab内容组件使用NavDestination,无法使用pathStatck.pushPathByName()进行跳转 ?


关于HarmonyOS 鸿蒙Next Navigation NavDestination 导航及路由的问题,您也可以访问:https://www.itying.com/category-93-b0.html 联系官网客服。

5 回复

MainPage的 

build() {

    NavDestination() {

      Column() {

        TitleBarComponent({ title: this.title, isNeedBack: false })

        Tabs({

          barPosition: BarPosition.End,

          controller: this.tabsController

        }) {

          TabContent() {

            HomePage() //[@Link](/user/Link) 使用$

          }

          .tabBar(this.TabBuilder('首页', 0, $r('app.media.home_pressed'), $r('app.media.home_normal')))

          TabContent() {

            ContactPage()

          }

          .tabBar(this.TabBuilder('通讯录', 1, $r('app.media.contact_pressed'), $r('app.media.contact_normal')))

          TabContent() {

            WorkingPage()

          }

          .tabBar(this.TabBuilder('工作', 2, $r('app.media.backlog_pressed'), $r('app.media.backlog_normal')))

          TabContent() {

            MinePage()

          }

          .tabBar(this.TabBuilder('我的', 3, $r('app.media.mine_pressed'), $r('app.media.mine_normal')))

        }

第一个tab,HomePage的

build() {

    NavDestination() {

      Column() {

        Row() {

          Text('2023/12/09 星期六')

            .commonStyle()

            .fontColor($r('app.color.f2'))

          Text('您好 ' + this.realName)

            .commonStyle()

            .fontColor($r('app.color.f2'))

        }

        .width('100%')

        .backgroundColor($r('app.color.main'))

        .justifyContent(FlexAlign.SpaceBetween)

        Column() {

          GridRow({ columns: 5 }) {

            ForEach(this.menuTitle, (item: string, index) => {

              GridCol() {

                Column() {

                  Image(this.menuIcon[index])

                    .width(35)

                    .height(35)

                  Text(item)

                    .margin({ top: 5, bottom: 5 })

                    .fontColor($r('app.color.c3'))

                    .fontSize(14)

                    .fontWeight(FontWeight.Normal)

                }

                .width(70)

                .height(70)

                .margin({ top: 2 })

                .justifyContent(FlexAlign.Center)

                .backgroundColor($r('app.color.ff'))

                .onClick((event) => {

                  switch (index) {

                    case 0:

                      //router.pushUrl({ url: 'pages/notification/NotificationsPage' })

                      this.pathStack.pushPathByName("NotificationsPage", null)

                      break

                    case 1:

                      // router.pushUrl({ url: 'pages/document/ReportPage' })

                      break

                    default:

                      break

                  }

                })

              }

            })

          }

this.pathStack.pushPathByName("NotificationsPage", null) ?不起作用 

@Builder export function NotificationsPageBuilder(){ NotificationsPage() }

@Entry @Component struct NotificationsPage {

找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:https://www.bilibili.com/video/BV1S4411E7LY/?p=17

你可以上一下代码吗?MainPage页面应该是使用Navigation组件,这四个tab内容组件不使用NavDestination组件,是希望点击四个tab内容组件某个位置跳转到的目标组件,才加上NavDestination组件做为最外层组件。
回到顶部