NavController
タイプは 1 つ以上の Navigator
オブジェクトを使用してナビゲーション処理を実行します。デフォルトでは、NavController
は、ActivityNavigator
クラスとその ActivityNavigator.Destination
ネストクラスを使用して別のアクティビティに移動することにより、ナビゲーション グラフを離れることをサポートしています。
他のタイプのデスティネーションに移動するには、Navigator
オブジェクトを 1 つ以上 NavController
に追加する必要があります。たとえば、フラグメントをデスティネーションとして使用する場合、NavHostFragment
は、FragmentNavigator
クラスをその NavController
に自動的に追加します。
新しい Navigator
オブジェクトを NavController
に追加するには、getNavigatorProvider()
メソッドの後に addNavigator()
メソッドを使用します。
次のコード例では、CustomNavigator
オブジェクトを NavController
に追加しています。
Kotlin
val customNavigator = CustomNavigator() navController.navigatorProvider += customNavigator
Java
CustomNavigator customNavigator = new CustomNavigator(); navController.getNavigatorProvider().addNavigator(customNavigator);
ほとんどの Navigator
クラスには、ネスト デスティネーション サブクラスがあります。このサブクラスを使用することで、デスティネーション固有の追加属性を指定できます。デスティネーション サブクラスの詳細については、各 Navigator
クラスのリファレンス ドキュメントをご覧ください。
参考情報
ナビゲーションについて詳しくは、以下の参考情報をご確認ください。