56

3 つの画面を持つワークフローがあります。「画面 1」から「画面 2」へのアクセスまで、ユーザーは、私の写真で「モーダル」と呼ぶ、ある種の利用規約に同意する必要があります。しかし、彼はそれらの条件を一度だけ受け入れる必要があります。次に最初の画面にいるときは、直接画面 2 に進むことができます。ユーザーは条件に同意しないことを選択できるため、「画面 1」に戻り、「画面 2」に行こうとはしません。

アプリのワークフロー

新しいナビゲーションコンポーネントでそれを行う方法を考えています。

以前は、私は何をしていましたか:

  • 画面 1 で、ユーザーが条件に同意する必要があるかどうかを確認します
  • 「いいえ」の場合、「画面 2」アクティビティを開始します
  • はいの場合startActivityForResult()は、モーダルの結果を使用して待機します。条件を承認済みとしてマークします。「画面2」を起動

しかし、ナビゲーション グラフでは、Fragment を開始して結果を取得する方法がありません。

「モーダル」画面で条件を承認済みとしてマークし、そこから「画面 2」を開始できます。問題は、画面 2 にアクセスするには、ネットワーク リクエストを行う必要があるということです。「画面 1」と「モーダル」の両方で API の呼び出しとその結果の処理を複製したくありません。

Jetpackナビゲーションを使用して、「モーダル」から「画面1」に戻る方法はありますか?

編集:私は現在、ヤヒヤが以下で提案しているのと同じフローを使用して回避しています:モーダルのためだけにアクティビティを使用startActivityForResultし、「画面1」から使用しています。フロー全体でナビゲーション グラフを引き続き使用できるかどうかは疑問です。

4

6 に答える 6