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

Андроидный фрагмент addToBackStack (null): как добавить один и тот же фрагмент в стек всего один раз?

когда для использования метода addToBackStack (null) используется фрагмент, и многократно нажимайте на метод, страница фрагмента будет сохранять каждый раз в стек, когда я нажимаю клавишу "Назад", она восстанавливает одну и ту же страницу, как добавить тот же фрагмент для стека только один раз?

    mSettingBtn.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            SettingFragment settingFragment = new SettingFragment();

            FragmentTransaction transaction = getFragmentManager().beginTransaction();
            transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
            transaction.replace(R.id.left_framelayout, settingFragment);
            transaction.addToBackStack(null);
            transaction.commit();
        }
    });
4b9b3361

Ответ 1

При добавлении Fragment в стопку вы также должны передать TAG, чтобы определить, что Fragment:

 .addToBackStack(SettingsFragment.TAG);

До добавления Fragment вы сможете проверить, находится ли этот Fragment уже в задней части, используя:

 getFragmentMangager().findFragmentByTag(SettingsFragment.TAG);

Это вернет null, если Fragment не добавлен.