1. ホーム
  2. android

戻るボタンが押されたフラグメントではアクティビティが空白になる

2023-07-23 05:51:47

質問

アクティビティがあり、その中で多くのフラグメントが膨らんでいます。 FrameLayout

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

例:mainActivity > 任意のフラグメント(戻るボタンを押す) > アクティビティは空白です。

onCreateで。

layout = (FrameLayout)findViewById(R.id.content_frame);
layout.setVisibility(View.GONE);

フラグメントを開始すると

FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.content_frame, profileFragment);
ft.addToBackStack(null);
ft.commit();
layout.setVisibility(View.VISIBLE);

frameLayoutの可視性を高める必要があるんでしょうね。 GONE に戻す必要があると思いますが、どうすればよいでしょうか?


私は onBackPressed を設定し layout.setVisibility(View.GONE); を設定しましたが、メインページに直接移動してしまうため、フラグメントを戻ることができません。

どのように解決するのですか?

アクティビティで複数のフラグメントが使用されている場合、またはフラグメントが 1 つしかない場合、最初のフラグメントに addToBackStack が定義されていないはずです。これはバックナビゲーションを可能にし、このフラグメントの前に空のアクティビティレイアウトが表示されるからです。

 // fragmentTransaction.addToBackStack() // dont include this for your first fragment.

しかし、他のフラグメントでは、これを定義しておく必要があります。そうしないと、バックが以前の画面(フラグメント)に移動せず、アプリケーションがシャットダウンする可能性があります。