Мой проект содержит два фрагмента:
- FragmentA: фрагмент, загруженный по умолчанию при запуске приложения
- FragmentB: замените
fragmentA, когда нажимается кнопка.
Это XML моего основного представления:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<fragment
android:id="@+id/main_fragment_container"
android:name="fragmentA"
android:layout_width="match_parent"
android:layout_height="match_parent">
</fragment>
</LinearLayout>
Когда я хочу заменить fragmentA на FragmentB, я использую этот код:
FragmentTransaction fragmentTransaction = getSupportFragmentManager()
.beginTransaction();
fragmentTransaction.addToBackStack(null);
fragmentTransaction.replace(R.id.main_fragment_container, new FragmentB());
fragmentTransaction.commit();
Этот код работает нормально. Мой FragmentA заменяется новым FragmentB. Но когда щелчок сделан на задней кнопке, я хочу заменить FragmentB на fragmentA, используя popBackStackImmediate().
Это код, который я использую:
if (getSupportFragmentManager().getBackStackEntryCount() > 0){
boolean done = getFragmentManager().popBackStackImmediate();
fragmentTransaction.commit();
}
Функция popBackStackImmediate всегда возвращает false, а FragmentB - на переднем плане.
Почему FragmentA не заменяет FragmentB, когда я вызываю popBackStackImmediate? У кого-нибудь есть идея решить мою проблему?
заблаговременно