Несколько вызовов FragmentTransaction.replace () - только один работает после изменения ориентации

Я использую следующий код, чтобы заполнить мой интерфейс 2 фрагментами, контейнерыFrameLayoutопределены в XML. Это первый раз, когда этот код называется, т.е. когда приложение запускается, оно работает нормально, и оба моих фрагмента отображаются, как и ожидалось. Однако после изменения конфигурации (в частности, ориентации) отображается только первый фрагмент в транзакции.

Я нене думаю, что этоПроблема с самими фрагментами, потому что, если я переверну код, чтобы одна замена вызывалась раньше другой, или наоборот, этот фрагмент будет отображаться. Так, например, при использовании фрагмента снизу в качестве руководства, если я поменяю местами вызовы mSummary и mDetails, то будут отображены mDetails, и mSummary выиграет 'т.

Это's всегда второй в блоке, который отсутствует.

// Using tablet layout
} else {
    FragmentManager fm = super.getFragmentManager();
    FragmentTransaction ft = fm.beginTransaction();
    ft.replace(R.id.summary_container, mSummaryFragment);
    ft.replace(R.id.details_container, mDetailsFragment);
    ft.commit();
}

м сохраняя фрагменты вonSaveInstanceState и восстановление их изBundle savedInstanceState когда деятельность воссоздается. Я также попытался разбить транзакцию на две части, позвонивcommit() а затем получить другойFragmentTransaction объект, но нет радости там.

Ответы на вопрос(3)

Ваш ответ на вопрос