Подтвердить что ты не робот

Как уничтожить Фрагмент?

У меня есть Activity. Activity имеет два Fragment s. Фрагмент A - это меню. Фрагмент B Подробнее.

Я пытаюсь сделать другой фрагмент C в фрагменте B, так что в Activity есть 3 фрагмента. И я пытаюсь заменить фрагмент B на фрагмент D.

Я думаю, что фрагмент B и C мертв. НО эти Фрагменты живы. Только фрагменты - это состояние onDestroyView(). Я хочу onDestroy() или onDetach().

Что мне делать для Fragments.onDestroy() или onDetach()? Я не могу уничтожить или изменить Activity.

4b9b3361

Ответ 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();