Я начинаю работать с фрагментами и столкнулся с проблемой.У меня есть фрагменты просмотра файлов (более одного) и фрагмент поиска.Чтобы упростить задачу, я добавляю свой фрагмент для просмотра файлов в backstack всякий раз, когда иду на поиск, чтобы можно было легко вернуть его обратно, если я решу просто закрыть его.Теперь проблема в том, что когда я нажимаю на файл во фрагменте поиска, чтобы перейти к конкретному фрагменту, в котором находится этот файл, всегда вызывается onCreateView первого фрагмента (который находился в backstack), даже если я его заменил (?) и я не хочу этого.Вот что я делаю, чтобы изменить фрагменты в файле поиска, нажав:
1. Я вызываю pop, чтобы перейти к предыдущему фрагменту
@Override
public boolean onSearchViewClose() {
if (getActivity() != null) {
getActivity().getSupportFragmentManager().popBackStack();
return true;
}
return false;
}
2.Затем я заменяю оставшийся фрагмент
public void setFragment(Fragment fragment, String tag, boolean clearBackStack, boolean addToBackStack) {
// Insert the fragment by replacing any existing fragment
hideLoadingProgress();
FragmentManager fragmentManager = getSupportFragmentManager();
if (clearBackStack) {
clearBackStack(fragmentManager);
}
FragmentTransaction transaction = fragmentManager.beginTransaction().replace(R.id.content_frame, fragment, tag);
if (addToBackStack) {
transaction.addToBackStack(null);
}
transaction.commit();
}
при очистке backstack:
public void clearBackStack(FragmentManager fragmentManager) {
for (int i = 0; i < fragmentManager.getBackStackEntryCount(); ++i) {
fragmentManager.popBackStack();
}
}
Даже если я не очищаю backstack, проблема сохраняется. Заранее спасибо за ответы.