Работая с фрагментами Я всегда использовал replace()
для своих транзакций, но я бы хотел, чтобы мне больше не приходилось сохранять состояния экземпляра, чтобы восстановить представление фрагмента и предотвратить перезагрузку при возврате к этому фрагменту. Итак, я решил работать с add()
. Дело в том, что когда я добавляю другой фрагмент, предыдущее представление фрагмента остается в фоновом режиме, и это нормально (это поведение, которое я ожидал), но проблема в том, что я действительно могу взаимодействовать с представлениями в фоновом режиме. Пример:
Фрагмент A имеет Button
Фрагмент B имеет TextView
Когда я добавляю фрагмент A, а затем добавляю фрагмент B, я могу щелкнуть фрагмент A Button
, даже оставаясь на фрагменте точка зрения Б.
Я использую:
FragmentTransaction fragmentTransaction =
getSupportFragmentManager().beginTransaction().
add(getRootViewContainer(),fragment,fragment.getClass().getSimpleName());
if (shouldGoBack)
fragmentTransaction.addToBackStack(fragment.getClass().getSimpleName());
где getRootViewContainer()
возвращает id FrameLayout
, который я использую в качестве основного контейнера своей активности.
Теперь, действительно ли это поведение по умолчанию для add()
?
Если да, то есть ли способ избежать этого или просто нужно использовать replace()
?