У меня проблема с реализацией обратной навигации.Как восстановить заднюю навигацию с помощью фрагментов?
Деятельность A1
начинает деятельность 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
«s 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
. Проблема заключается в том, когда пользователь нажимает на кнопку назад:
- первый щелчок: ничего не происходит
- второй щелчок: идет от
F2
кA1
(F1
пропущено)
Что я ожидаю
- 1-й клик:
F2
->F1
- второй щелчок:
F1
->A1
Я заметил, что если я нажимаю назад, прежде чем F1 заменяется на F2:
- первый щелчок:
F1
-> пустой экран - второй щелчок: пустой экран->
A1
Что вы ожидаете, вы имели в виду F2-> F1, тогда F1-> A1, правильно? – dmon
@dmon: Абсолютно. Я исправил вопрос. – znat
Как вы добавляете F2? Вы используете метод replaceFragment? –