componentを使うと、画面間の遷移を実装する上で複雑になりがちな点を軽減できる。今回は、このコンポーネントを使って簡単な画面遷移を実装してみる。3.5.1準備build.gradle(app)に以下の依存を追加する。....}ライブラリーのバージョンはブログ執筆時点での最新バージョンのため、必要に応じて適宜更新してほしい。ナビゲーションの追加プロジェクトのresフォルダの下に新たにnavigationフォルダを作成し、ナビゲーションリソースxmlを追加する。ここでは、公式サンプルに倣ってnav_graph.xmlという名前にした。このファイルを選択すると下記のような画面が立ち上がる。ここでは、Fragmentを2つ作り、1つ目のFragmentから2つ目のFragmentへ遷移を示す矢印を引いている。xmlは以下のようになっている。/></navigation>上記の過程で、ナビゲーションエディタから2つのFragmentが作られる。これらのxmlを下記のように編集する。1つ目は画面右下にボタンがあるFragment。/></androidx.constraintlayout.widget.ConstraintLayout>もう一つは遷移先の画面で、特に何もない画面である。tools:context=".MyFragment2"/>次に、Activityが読み込むレイアウトファイルactivity_main.xmlを下記のように変更する。app:navGraph="@navigation/nav_graph"></fragment>fragmentタグを使い、全面にFragmentを配置している。ポイントは6行目でNavHostFragmentを指定しているところである。このようにしておくと、NavHostFragmentは11行目app:navGraphで指定したidのナビゲーションリソースを読み込み、それに従った画面とナビゲーションを構築してくれる。10行目ではapp:defaultNavHost="true"としている。このようにすることで、デフォルトの画面から遷移した後、バックキーを押すとその画面に戻ってくることができる。ここまで出来たら画面の遷移のコードを書こう。先のnav_host.xmlにて初期画面をMyFragmentに設定していた。そこで、MyFragmentのコードを以下のように編集する。false)にalso()で処理を追加している。その中では、findNavController()でNavControllerを取得し、そのnavigate()メソッドを使いアクション先を指定する。すると、指定した先の画面へと遷移が行われる。componentの使い方のサンプルである。ここまでのソースをgithubにアップしたので、参考にしてほしい。コメントをキャンセルメールアドレスが公開されることはありません。