戻るナビゲーションの実装に問題があります。
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>
で、上記A2
のonCreate()
コンテナーにフラグメント 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 回目のクリック: から
F2
へA1
(F1
スキップ)
私が期待すること
- 最初のクリック:
F2
->F1
- 2 回目のクリック:
F1
->A1
F1 が F2 に置き換わる前に押し戻すと、次のようになることに気付きました。
- 1 回目のクリック:
F1
-> 空白の画面 - 2 回目のクリック: 空白の画面 ->
A1