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