Как правильно обрабатывать изменение ориентации при использовании фрагментов?
У меня есть альбомная компоновка, которая содержит 2 фрагмента (создается в коде в FrameLayout
s). Когда я переключаюсь в портретный режим (макет которого содержит только один FrameLayout
, который содержит только левую панель), правый фрагмент больше не требуется.
Я получаю сообщение об ошибке:
E/AndroidRuntime(4519): Caused by: java.lang.IllegalArgumentException: No view found for id 0x7f060085 for fragment myFragment{418a2200 #2 id=0x7f060085}
Предполагается, что моя деятельность заключается в попытке повторно присоединить фрагмент там, где он был до изменения ориентации, но поскольку представление, содержащее фрагмент, не существует в портретном режиме, выдается ошибка.
Я пробовал следующие методы скрытия / удаления / отключения, но все равно получаю ошибку. Как правильно сказать, что фрагмент больше не нужен и не пытаться отобразить?
@Override
public void onCreate(Bundle b) {
super.onCreate(b);
Fragment f = getSupportFragmentManager().findFragmentById(R.id.fragholder2);
//rightPane is a framelayout that holds my fragment.
if (rightPane == null && f != null) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.hide(f); // This doesnt work
ft.remove(f); // neither does this
ft.detach(f); // or this
ft.commit;
}
}