ダイアログのデスティネーション

このドキュメントでは、ダイアログのデスティネーションをどのように使用して、バックスタックの管理方法に関する独自の考慮事項を導入できるかを概説します。

概要

1 つ以上のダイアログ デスティネーションは、バックスタックの一番上だけに配置できます。これは、ユーザーがダイアログ デスティネーション以外のデスティネーションに移動すると、NavController により、すべてのダイアログ デスティネーションがスタックの一番上から自動的にポップされるためです。これにより、現在のデスティネーションが常にバックスタック上の他のデスティネーションの上に完全に表示されるようになります。

宛先には、ホストされているデスティネーションアクティビティのデスティネーションダイアログのデスティネーションのいずれかを指定できます。

バックスタックが、ナビゲーション ホストを満たすホストされたデスティネーションのみで構成されており、ユーザーがダイアログ デスティネーションに移動した場合、バックスタックは図 2 のようになります。

ダイアログ デスティネーションが一番上にあるバックスタック
図 2. ダイアログ デスティネーションが一番上にあるバックスタック。

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

2 つのダイアログ デスティネーションが一番上にあるバックスタック
図 3. 2 つの Dialog デスティネーションが一番上にあるバックスタック

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

ダイアログ デスティネーションがポップされ、新しいデスティネーションが追加される
図 4. Dialog デスティネーションがポップされ、新しいデスティネーションが追加される