web-dev-qa-db-ja.com

Androidナビゲーションライブラリのディープリンク:バックスタックを合成する方法

Androidアーキテクチャのナビゲーションコンポーネント を使用すると、次のナビゲーショングラフが表示されます

-> [Home] -> [Articles List] -> [Specific Article]

[Specific Article]へのディープリンクもあります。開いているとき、上に移動すると、現在[Home]に移動します。

代わりに上に移動すると[Articles List]に戻るように(そして再び移動する場合は[Home]に戻るように)バックスタックを合成したいと思います。

これを行うためのナビゲーション方法は何ですか?

11
Tom

NavDeepLinkBuilderドキュメント によると、Navigationは合成バックスタックの宛先のstartDestinationを使用します。 宛先をネストされたナビゲーショングラフにグループ化する の場合、ネストされたグラフのstartDestinationとルートグラフのstartDestinationの両方がバックスタックに追加されます。これにより、ネストされたグラフのstartDestinationとして[Articles List]を使用して、バックスタックに追加することができます。

ただし、合成バックスタックをできるだけ小さくすることを強くお勧めします-深さ2または3(ここのように)で問題ありませんが、ユーザーがランチャーに戻るために戻るボタンを繰り返しタップしてタップしなければならない場合を避けるために、そのレベルをはるかに超えることはお勧めしません。

6
ianhanniballake

documentation は、元のソリューションが機能することを意味します。

ユーザーがディープリンクの宛先から[戻る]ボタンを使用すると、アプリのエントリポイントからアプリに入ったかのように、ナビゲーションスタックを上に移動します。

さらに、ianhanniballakeの回答は期待される結果を生成しません(ディープリンクされたフラグメントは開かれません)。

私はこれらの問題の両方についてグーグルのトラッカーに問題を作成しました: https://issuetracker.google.com/issues/79734195

2
Tom