У меня проблема с моими фрагментами. Я использую этот код, чтобы перемещаться между фрагментами:Android: Фрагменты действуют неожиданно (внезапно прозрачно?)
между «основными» фрагментами (без backstack, потому что я хочу, чтобы пользователь выйти, когда он нажимает назад (он работает)):
FragmentManager fragmentManager = getFragmentManager();
final FragmentTransaction ft = fragmentManager.beginTransaction();
ft.setCustomAnimations(R.anim.slide_in_up_honeycomb, R.anim.slide_out_up_honeycomb);
ft.replace(R.id.container, NewsFragment.newInstance(position + 1), NewsFragment.class.getSimpleName());
ft.commit();
и между "внутренние" фрагменты (с backstack):
FragmentTransaction ft = ((Activity) getActivity()).getFragmentManager().beginTransaction();
Fragment nextFragment = LexikonDetailFragment
.newInstance(item);
ft.setCustomAnimations(R.anim.slide_in_up_honeycomb, R.anim.slide_out_up_honeycomb);
ft.replace(R.id.container, nextFragment);
ft.addToBackStack(LexikonDetailFragment.class.getSimpleName());
ft.commit();
Но в следующем случае:
фрагмент A -> фрагмент A1
фрагмент А1 -> фрагмент B
Нажмите кнопку возврата (должна закончиться приложение) -> восходит к фрагменту A1
Похоже Фрагмент A1 не удаляется из задней части стола и остается в фоновом режиме. Я думал, что одним из возможных решений может быть установка всех фрагментов на белом фоне .. но это не устранит проблему, это просто скроет ее. Итак, что может быть возможным решением?
Знаете ли вы, что такое addToBackStack? –
Конечно, но я думал, что фрагмент автоматически удаляется при нажатии «назад». – Joda
Я хочу, чтобы внутренние фрагменты были повторно использованы, вот почему я использую addtobackstack. Но как только изменяется верхний фрагмент, я не хочу снова оживлять старые внутренние фрагменты. – Joda