Андроидный фрагмент 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();
}
});
Ответы
Ответ 1
При добавлении Fragment
в стопку вы также должны передать TAG
, чтобы определить, что Fragment
:
.addToBackStack(SettingsFragment.TAG);
До добавления Fragment
вы сможете проверить, находится ли этот Fragment
уже в задней части, используя:
getFragmentMangager().findFragmentByTag(SettingsFragment.TAG);
Это вернет null
, если Fragment
не добавлен.