Однажды я задал один вопрос, например: Использование фрагмента более одного раза с новыми значениями с поддержкой обратного стека
Моя проблема была найдена ... но старый фрагмент обновляется (загружается) ... что не требуется (поскольку он содержит пейджинг). Я знаю причину обновления старого фрагмента, т. е. я использовал FragmentTransaction.replace в методе goToFragmentWithBackStack. Если я буду использовать FragmentTransaction.add в методе goToFragmentWithBackStack, он больше не будет работать, и новые данные будет обновлен в старом фрагменте.
Что-то вроде этого: A (старые данные) -> B-> A (новые данные) [КАК Я ХОЧУ .. ОЖИДАЕМЫЙ РЕЗУЛЬТАТ], но показывает, использовал ли я FragmentTransaction.replace в goToFragmentWithBackStack метод strong>: A(старые данные с загрузкой/обновлением)->B->A(новые данные с загрузкой/обновлением)
Если бы я использовал FragmentTransaction.add в методе goToFragmentWithBackStack: A(старые данные)->B->ничего...
Если я проверю, что нажата кнопка Backstack, она показывает что-то вроде:
Если бы я использовал FragmentTransaction.replace в методе goToFragmentWithBackStack: A(старые данные с загрузкой/обновлением)‹-B‹-A(новые данные с загрузкой/обновлением)(ХОЧУ ПЕРЕСТАНЬТЕ ОБНОВЛЯТЬ СТАРЫЙ ФРАГМЕНТ)
Если бы я использовал FragmentTransaction.add в методе goToFragmentWithBackStack: A (с новыми данными и старым фрагментом)‹-B‹-A(пустое ничего) (поскольку старый фрагмент A уже в контейнере, поэтому новые данные устанавливаются в старом фрагменте)
ЗАКЛЮЧЕНИЕ. Моя основная проблема заключается в том, что я хочу прекратить обновление данных в старом фрагменте A при обратном нажатии. С FragmentTransaction.add в методе goToFragmentWithBackStack он не работает...
Вот мой код:
public static void goToFragmentWithBackStack(Fragment fragment) {
Fragment tmp = fm.findFragmentByTag(fragment.getClass().getName());
if (tmp != null && tmp.isVisible())
return;
ft = fm.beginTransaction();
ft.replace(R.id.content_frame, fragment, fragment.getClass().getName());
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
currentTag = fragment.getClass().getName();
}
вызывающий фрагмент:
LeftAndRightActivity.goToFragmentWithBackStack(new ExploreFragment(theWord,"#"));
Исследовательский фрагмент:
public ExploreFragment(String data,String pattern) {
this.str_data = data;
this.str_pattern = pattern;
}
Теперь поток приложения выглядит примерно так: я перехожу от ExploreFragment(1) к PostDetailFragment, а затем снова к ExploreFragment(2) с новыми данными.. (отлично работает)
Теперь, когда я вернулся обратно, нажав кнопку «Назад» на устройстве, старый ExploreFragment (1) снова загружается... Я не хочу обновлять данные ExploreFragment (1), он должен быть только что возобновлен, а не обновлен... Я надеюсь ты понимаешь мою проблему..
Пожалуйста, помогите мне .. Заранее спасибо ..