このドキュメントでは、ダイアログのデスティネーションをどのように使用して、バックスタックの管理方法に関する独自の考慮事項を導入できるかを概説します。
概要
1 つ以上のダイアログ デスティネーションは、バックスタックの一番上だけに配置できます。これは、ユーザーがダイアログ デスティネーション以外のデスティネーションに移動すると、NavController
により、すべてのダイアログ デスティネーションがスタックの一番上から自動的にポップされるためです。これにより、現在のデスティネーションが常にバックスタック上の他のデスティネーションの上に完全に表示されるようになります。
宛先には、ホストされているデスティネーション、アクティビティのデスティネーション、ダイアログのデスティネーションのいずれかを指定できます。
例
バックスタックが、ナビゲーション ホストを満たすホストされたデスティネーションのみで構成されており、ユーザーがダイアログ デスティネーションに移動した場合、バックスタックは図 2 のようになります。

次にユーザーが別のダイアログ デスティネーションに移動すると、図 3 に示すように、バックスタックの一番上に追加されます。

Dialog
デスティネーションが一番上にあるバックスタック次にユーザーが非フローティング デスティネーションに移動すると、ダイアログ デスティネーションは、新しいデスティネーションに移動する前に、まず、図 4 に示すようにバックスタックの一番上からポップされます。

Dialog
デスティネーションがポップされ、新しいデスティネーションが追加される