-1

2 つのフラグメントがあります (例: fragmentA と fragmentB)。

最初に、fragmentA で fragmentBfindNavController().navigate(R.id.action_fragmentA_to_fragmentB)に移動するために使用します。

次に、fragmentB で、fragmentA に戻りたい場合。以下の 2 つの方法があります。

  • 戻るボタンを押すだけです:fragmentAonCreate()は呼び出されません
  • findNavController().navigate(R.id.action_fragmentB_to_fragmentA) : fragmentAonCreate()が呼び出されます

なぜ?

4

1 に答える 1

0

戻るボタンがフラグメントの onCreate を呼び出さない理由は、設計によるものです。ユーザーは、戻るボタンが onCreate を呼び出したり、フラグメントを再度作成したりすることを期待していません。

例として、Android で YouTube アプリを開くと、興味に基づいた動画が表示されたホーム画面が表示されるとします。少しスクロールした後にビデオをタップし、ビデオの途中で戻るボタンを押して戻ることを決定した場合、アプリはビデオをタップした場所に戻り、スクロールしたのと同じ量で戻ることを期待します、ホームページ全体を再度リロードして新しいビデオでいっぱいにし、画面の上部にリセットする代わりに.

同様に、アプリの戻るボタンも同じようにする必要があります。ただし、戻るボタンを別の方法で動作させたい場合は、Android がこれを行う方法を提供しています。それについてはこれを参照してください。

于 2019-10-10T06:05:49.350 に答える