2 つのフラグメント呼び出しがCreateRoomFragment
ありDisplayPhotoFragment
、ナビゲーション グラフは次のようになります。
<navigation>
<fragment
android:id="@+id/createRoomFragment"
android:name="package.room.CreateRoomFragment"
android:label="Create a room"
tools:layout="@layout/fragment_create_room">
<action
android:id="@+id/action_createRoomFragment_to_roomFragment"
app:destination="@id/roomFragment" />
<action
android:id="@+id/action_createRoomFragment_to_displayPhotoFragment"
app:destination="@id/displayPhotoFragment" />
</fragment>
<fragment
android:id="@+id/displayPhotoFragment"
android:name="package.fragment.DisplayPhotoFragment"
android:label="fragment_display_photo"
tools:layout="@layout/fragment_display_photo" >
<argument android:name="bitmap"
app:argType="android.graphics.Bitmap"/>
</fragment>
CreateRoomFragment
からに移動したいときはDisplayPhotoFragment
、次のように do を使用します。
NavDirections action = CreateRoomFragmentDirections.actionCreateRoomFragmentToDisplayPhotoFragment(selectedPhoto);
Navigation.findNavController(view).navigate(action);
これを行うと、に移動できますDisplayPhotoFragment
。
しかしback
、デバイスのボタンを押してもBack arrow
、ツールバーからも戻ることができませんCreateRoomFragment
。
私はこれを試しましたが、まだ前のフラグメントに戻ることができません:
requireActivity().getOnBackPressedDispatcher().addCallback(getViewLifecycleOwner(),
new OnBackPressedCallback(true) {
@Override
public void handleOnBackPressed() {
navController.navigateUp(); //I tried this
navController.popBackStack(R.id.createRoomFragment,false); //and also this
}
});
現在の主な問題:
上記のコードを使用すると、画面は前の Fragment( CreateRoomFragment
) に戻りませんでした。まだスタックしてDisplayPhotoFragment
いますが、同時にCreateRoomFragment
onViewCreated
セクション内の API メソッドが呼び出されています。
これは何が原因ですか?どうすればこの問題を解決できますか?