Как уничтожить Фрагмент?
У меня есть Activity
. Activity
имеет два Fragment
s.
Фрагмент A - это меню. Фрагмент B Подробнее.
Я пытаюсь сделать другой фрагмент C в фрагменте B, так что в Activity
есть 3 фрагмента.
И я пытаюсь заменить фрагмент B на фрагмент D.
Я думаю, что фрагмент B и C мертв.
НО эти Фрагменты живы. Только фрагменты - это состояние onDestroyView()
. Я хочу onDestroy()
или onDetach()
.
Что мне делать для Fragments.onDestroy()
или onDetach()
? Я не могу уничтожить или изменить Activity
.
Ответы
Ответ 1
Если вы не удаляете вручную эти фрагменты, они все еще привязаны к действию. Ваша деятельность не разрушена, поэтому эти фрагменты тоже.
Чтобы удалить (так уничтожить) эти фрагменты, вы можете вызвать:
fragmentTransaction.remove(yourfragment).commit()
Надеюсь, что это поможет вам.
Ответ 2
Попробуйте это
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
// TODO Auto-generated method stub
FragmentManager manager = ((Fragment) object).getFragmentManager();
FragmentTransaction trans = manager.beginTransaction();
trans.remove((Fragment) object);
trans.commit();
super.destroyItem(container, position, object);
}
Ответ 3
Если вы находитесь в самом фрагменте, вам нужно вызвать это. вашфрагмент должен быть фрагментом, который вызывается. Введите код:
getFragmentManager() BeginTransaction() удалить (yourFragment).commitAllowingStateLoss();..
или если вы используете supportLib, вам необходимо позвонить:
getSupportFragmentManager() BeginTransaction() удалить (yourFragment).commitAllowingStateLoss();..
Ответ 4
getActivity().getSupportFragmentManager().popBackStack();