1

戻るナビゲーションの実装に問題があります。

Activityは ActivityA1を開始しA2ます。A2全画面フラグメントが含まれています:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="match_parent" >

    <!-- fragment goes here -->

</RelativeLayout>

で、上記A2onCreate()コンテナーにフラグメント F1 をロードします。

@Override
protected void onCreate(Bundle arg0) {
    super.onCreate(arg0);
    setContentView(R.layout.activity_main);
    replaceFragment(new AccountHomeFragment());
}

public void replaceFragment(Fragment f){
     FragmentTransaction fragmentTransaction = getSupportFragmentManager().beginTransaction();
     fragmentTransaction.replace(R.id.fragment_container, f);
     fragmentTransaction.addToBackStack(f.getClass().getSimpleName());
     fragmentTransaction.commit();
}

そして、ある時点でユーザーがボタンをクリックすると、F1が に置き換えられF2ます。問題は、ユーザーが戻るボタンをクリックしたときです。

  • 1 回目のクリック: 何も起こりません
  • 2 回目のクリック: からF2A1(F1スキップ)

私が期待すること

  • 最初のクリック: F2->F1
  • 2 回目のクリック: F1->A1

F1 が F2 に置き換わる前に押し戻すと、次のようになることに気付きました。

  • 1 回目のクリック: F1-> 空白の画面
  • 2 回目のクリック: 空白の画面 ->A1
4

1 に答える 1

0

最初のフラグメントをバックスタックに追加することによっても問題が発生する可能性があると思います。あなたはそれを自動的に追加しますonCreate。呼び出しreplaceFragmentなしで手動でフラグメントを追加するだけで、後続のすべてのフラグメント トランザクションに関数を使用できます。addToBackStackreplaceFragment

于 2013-02-26T14:56:52.230 に答える