Разрушается ли текущий фрагмент в каждой транзакции замены без addToBackStack? - PullRequest
0 голосов
/ 02 сентября 2018

Фрагмент A -> Фрагмент B (замена транзакции добавлена ​​в задний стек)

getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.container, fragementB).addToBackStack("tag").commit();

Фрагмент B -> Фрагмент C (Заменить транзакцию НЕ добавлено в задний стек)

getActivity().getSupportFragmentManager().beginTransaction().replace(R.id.container, fragementC).commit();

Во время транзакции Фрагмент B -> Фрагмент C будет уничтожен Фрагмент B или нет, так как backstack сохраняет ссылку на него из предыдущей транзакции?

AFAIK, в обычной транзакции замены без addToBackStack текущий фрагмент уничтожается, но здесь backstack содержит ссылку на этот фрагмент из предыдущей транзакции

1 Ответ

0 голосов
/ 02 сентября 2018

Я думаю, что да. Когда вы используете метод замены, текущий экземпляр фрагмента уничтожается. И когда вызывается один и тот же фрагмент, вы можете видеть, что onCreateView () и onViewCreated () вызываются снова.

Вы можете использовать метод .add () вместо метода replace (). Таким образом, фрагмент текущего фрагмента будет добавлен в стек и не будет уничтожен, пока вы не скажете «заменить» или «поп».

...