Сценарий такой ... Я нажимаю кнопку, которая загружает следующий фрагмент. Пока анимация продолжается, я нажимаю кнопку последних приложений. После отображения экрана последних приложений я возвращаюсь к своему приложению.
Тогда я вижу два фрагмента, нарисованных друг на друге. Как будто Android забыл удалить предыдущий фрагмент.
Я щелкаю назад, чтобы удалить все фрагменты, пока не достигну первого фрагмента, загруженного в эту FragmentActivity. Я регистрирую все фрагменты, полученные из FragmentManager, и он показывает только один. Но я все еще вижу два фрагмента, нарисованных один поверх другого. Тот, который должен был быть удален, не реагирует на сенсорные события, а другой реагирует так, как должен.
Это ошибка Android или моя ошибка? Есть ли способ исправить это или предотвратить это?
Это происходит не каждый раз. Так я загружаю свои фрагменты
public void loadNewFragment(AnimFragment newFragment, boolean addToSTack, boolean animate, String tag) {
if (newFragment != null) {
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.fragment_enter_from_right, R.anim.fragment_exit_to_left, R.anim.fragment_enter_from_left, R.anim.fragment_exit_to_right);
transaction.replace(R.id.fragment_container, newFragment, tag);
if (addToSTack) {
transaction.addToBackStack(tag);
}
int transactionId = transaction.commit();
newFragment.setTransactionId(transactionId);
}
}
и я удаляю их на спине, нажимая
getSupportFragmentManager().popBackStackImmediate();