androdi-dev

提供: 個人的記録
移動: 案内検索

NavigationUI

https://developer.android.com/guide/navigation/navigation-getting-started

  • gonbeの理解
  • androidxで追加されたフラグメントの遷移をサポートするモジュール


依存関係に追加が必要なもの

モジュール

  • androidx.navigation:navigation-fragment
  • androidx.navigation:navigation-ui
  • androidx.navigation:navigation-dynamic-features-fragment
  • androidx.navigation:navigation-compose

kotlinサポート

kotlinを使わないなら不要

  • androidx.navigation:navigation-fragment-ktx
  • androidx.navigation:navigation-ui-ktx

テストフレームワーク

  • androidx.navigation:navigation-testing

ナビゲーショングラフ

  • gonbeの理解
  • フラグメントの遷移元、遷移先、遷移を開始するアクションを定義したリソース

ナビゲーショングラフの作成

  • android studioでのナビゲーショングラフ追加方法
  1. リソースメニューから res を選択。コンテキストメニューから android resource ファイルを追加する。
  2. FileName は任意の値を指定する。
  3. resource type に Navigation を選択する。
  4. リソースを作成する。
  • 上記手順で res/navigation ディレクトリが作成され、その中に[ファイル名].xml ができる

NavHost の作成

  • Navigation コンポーネントの核になるコンテナとして NavHost をアクティビティに追加する必要がある。
  • NavHostのデフォルト実装は NavHostFragment なので、NavHostFragmentをアクティビティに追加する。
  • NavHostFragmentをアクティビティに追加すると、使用するナビゲーショングラフを聞かれるので作っておいたナビゲーショングラフを選択する。
  • activity_main.xmlには以下のようなフラグメントが追加される
    <androidx.fragment.app.FragmentContainerView
        android:id="@+id/nav_host"
        android:name="androidx.navigation.fragment.NavHostFragment"
        android:layout_width="0dp"
        android:layout_height="0dp"
        app:defaultNavHost="true"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintBottom_toBottomOf="parent"
        app:navGraph="@navigation/nav_graph" />