Я изучал фрагменты и немного путался при дифференцировании вызовов FragmentTransaction.replace(id, fragment, tag)
и FragmentTransaction.addToBackStack(tag)
. Допустим, что мой текущий фрагмент FragmentA, а затем я загрузил FragmentB. Я хочу, чтобы в будущем, когда мне нужно загрузить FragmentA, мне не нужно его перезагружать. Просто загрузите старый в старом состоянии. Я использовал следующий сегмент кода:
public void loadFragment(Fragment fragmentB, String tag) {
FragmentManager fm = getSupportFragmentManager();
View fragmentContainer = findViewById(R.id.fragment_container);
FragmentTransaction ft = fm.beginTransaction();
ft.replace(fragmentContainer.getId(), fragmentB, tag);
ft.addToBackStack(tag);
ft.commit();
}
Теперь я смущен, где я должен добавить тег строки? В replace()
или в addToBackStack()
или в обоих вызовах? Можете ли вы объяснить разницу между этими двумя тегами?