新しいデスティネーション タイプのサポートを追加する

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 クラスのリファレンス ドキュメントをご覧ください。

参考情報

ナビゲーションについて詳しくは、以下の参考情報をご確認ください。

サンプル

Codelab

動画