Получить фрагмент из бэкстека во второй раз

В настоящее время я работаю над браузерным приложением для Android. Я управляю новыми вкладками с фрагментами. Итак, все работает нормально, когда пользователь открывает новую вкладку B, а затем снова возвращается на вкладку A. Проблема возникает, когда из A он пытается снова вернуться к B. Другими словами, он не работает, когда вы пытаетесь вернуть тот же фрагмент. во второй раз.

Вот как я добавляю новые вкладки-фрагменты

    android.app.Fragment f1 = new FragmentHolder();
    allFragments.add(f1);
    getFragmentManager().beginTransaction().replace(R.id.fragmentContainer, f1).addToBackStack(fragmentTags[allFragments.size()-1]).commit();

а вот как я отрываю фрагмент

boolean chkFlag = getFragmentManager().popBackStackImmediate(currentTag.getFragmentTAG(),0);

Я ценю вашу помощь заранее.


person Alexander    schedule 06.03.2017    source источник


Ответы (1)


Используйте функцию ниже в своей деятельности,

private void loadFragmentAnimated(Fragment fragment, Bundle args, int containerId, String title)
    {
        fragment.setArguments(args);
        FragmentManager fragmentManager = getActivity().getSupportFragmentManager();
        FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
        fragmentTransaction.replace(containerId, fragment);
        fragmentTransaction.commitAllowingStateLoss();
    }

Затем добавлен фрагмент с помощью ,

loadFragmentAnimated(c, null, R.id.container_name, "title");

И удалите фрагмент с помощью,

getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentById(R.id.container_name)).commit();
person Sushil Dubey    schedule 06.03.2017
comment
Спасибо за ваше предложение, но как я буду отслеживать все фрагменты в бэкстеке без тега? - person Alexander; 06.03.2017
comment
вы можете отслеживать фрагмент по идентификатору контейнера - person Sushil Dubey; 06.03.2017
comment
обратитесь к этому [сообщению] (stackoverflow.com/questions/6374170/) - person Sushil Dubey; 06.03.2017
comment
это не получение фрагмента из заднего стека, вы просто удаляете и воссоздаете его?! - person aya salama; 09.11.2017