web-dev-qa-db-ja.com

プログラムによるNavGraphの設定

私のアクティビティレイアウトには、次のNavHostFragmentがあります。

<fragment
            Android:id="@+id/my_nav_Host_fragment"
            Android:layout_height="match_parent"
            Android:layout_width="match_parent"
            Android:name="androidx.navigation.fragment.NavHostFragment"
            app:defaultNavHost="true"
            app:navGraph="@navigation/my_nav_graph" />

私の質問は、navGraphをプログラムで設定するにはどうすればよいですか? my_nav_Host_fragmentビューインスタンスをNavHostFragmentインスタンスに変換するにはどうすればよいですか?

6
amp

私は解決策を見つけました:

//Setup the navGraph for this activity
val myNavHostFragment: NavHostFragment = my_nav_Host_fragment as NavHostFragment
val inflater = myNavHostFragment.navController.navInflater
val graph = inflater.inflate(R.navigation.my_nav_graph)
myNavHostFragment.navController.graph = graph

に基づく: ナビゲーションアーキテクチャコンポーネント-引数データをstartDestinationに渡す

12
amp