ArkTS開発ガイド:ナビゲーションとページ遷移の実装

本記事では、ArkTSにおけるNavigationコンポーネントの使用方法について解説します。toolbarConfigurationプロパティとrouter.pushUrlメソッドを組み合わせることで、ボトムナビゲーションによるページ切り替え、複数のNavigationの実装、およびNavDestinationサブページへの遷移を実現します。

ホームページの定義

まず、ホームページとなるIndex.etsファイルを作成します。以下に実装例を示します。


@Entry
@Component
struct HomePage {
  private navPathStack: NavPathStack = new NavPathStack()
  
  build() {
    Column() {
      Navigation(this.navPathStack) {
        Column() {
          Text("ホーム")
        }
      }
      .mode(NavigationMode.Auto)
      .toolbarConfiguration([
        {
          value: "ホーム",
          action: () => {}
        },
        {
          value: "マイページ",
          action: () => {
            router.pushUrl({
              url: "pages/MemberPage"
            })
          }
        }
      ])
      .hideTitleBar(true)
    }
  }
}

会員センターの定義

次に、会員センターとなるMemberPage.etsファイルを実装します。


@Entry
@Component
struct MemberPage {
  private navPathStack: NavPathStack = new NavPathStack()
  
  build() {
    Column() {
      Navigation(this.navPathStack) {
        Column() {
          Text("会員センター")
          Text("設定を開く")
            .onClick(() => {
              this.navPathStack.pushPathByName("SettingPage", null)
            })
        }
      }
      .mode(NavigationMode.Auto)
      .toolbarConfiguration([
        {
          value: "ホーム",
          action: () => {
            router.pushUrl({
              url: "pages/HomePage"
            })
          }
        },
        {
          value: "マイページ",
          action: () => {}
        }
      ])
      .hideTitleBar(true)
    }
  }
}

設定ページの定義

会員センター内から遷移する設定ページを実装します。


@Entry
@Component
struct SettingPage {
  build() {
    Column() {
      NavDestination() {
        Column() {
          Text("設定ページ")
          Text("各種設定項目")
        }
      }
    }
  }
}

実装のポイント

上記の実装では、2つのルートページ(ホームページと会員センター)それぞれにNavigationコンポーネントを配置しています。toolbarConfiguration内ではrouterを使用してページ間を遷移し、サブページ(設定ページ)への遷移ではNavPathStackを使用しています。このアプローチにより、ルートページ間の干渉を避けつつ、階層的なページ構造を実現しています。

ルートページ間の遷移にはrouter、同一Navigation内でのページ遷移にはNavPathStackを使用することで、ナビゲーションの階層を明確に分離できます。これにより、複雑なアプリケーションでも直感的なページ遷移を実装可能です。

タグ: ArkTS navigation NavPathStack router DevEco Studio

7月25日 01:41 投稿