Android: разница между ft.remove() и popBackStack()
Я пытаюсь удалить фрагмент из моего стека. Я использую этот код:
FragmentManager fm = getSupportFragmentManager();
if (fm != null) {
FragmentTransaction ft = fm.beginTransaction();
Fragment currentFragment = fm.findFragmentById(R.id.my_id);
if (currentFragment != null) {
ft.remove(currentFragment);
ft.commit();
}
}
Нужно ли вызывать popBackStack() с указанным выше кодом?
fm.popBackStack();
1 ответ
remove()
просто удалит фрагмент.
popBackStack()
удалит текущий фрагмент и заменит его последним из стека. Чтобы это работало, нужно сделать addToBackstack()
на последнем фрагменте транзакции. Но это не то, что вы хотите сделать, поэтому не делайте этого.