くうと徒然なるままに

モバイルアプリを作りながらバックエンドも作っています。

Navigation Architecture Component で BottomNavigation と Include した Navigation Graph を紐付ける

Android 3.2 正式リリース && Androidx 1.0 おめでとうございます🎊

さて、 Android Studio 3.2 から入ってきた Navigation Architecture Component (NAC)
NAC には BottomNavigationView (and DrawerView?) と紐づけ、Fragment の ID と menu の id を一緒にすることで タップした時によしなにナビゲーションしてくれる機能があります。

https://willowtreeapps.com/ideas/exploring-androids-navigation-architecture-component

また、NAC の中には、 他のNavigation Graph を include する機能があります。
そんな状況でNavigation できるようにする方法について書いていきます。

課題点

ドキュメント等には、 Root Navigation Graph の中にある Fragment と BottonnavigationView を紐づける方法について書いてはあっても Include したやつと 紐づける方法については書いてない

解決策

Include された Navigation Graph の @+id?hoge を menu の ID と同じにすればおk

<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto" 
   **android:id="@+id/huge"**
    app:startDestination="@id/hoge>
// many Fragments
</navigation>