Я реализовал разные макеты для фрагмента для портретной и альбомной ориентации.
У меня есть TabActivity с 3 вкладками, в которых есть фрагменты.
Затем я реализовал метод onConfigurationChangedфрагмента и там я удаляю текущий фрагмент и считываю его (единственный способ позволить ему раздувать правильную компоновку, верно?).
К сожалению, это, кажется, работает только для видимого в данный момент фрагмента.
Пример: 1) Все фрагменты инициализированы с портретной компоновкой, все в порядке 2) Я перехожу на альбомную ориентацию 3) Видимый фрагмент изменяется отлично, альбомная компоновка загружается 4) Два фрагмента, которые не были видны при ориентацииПроизошли изменения, загрузили их макеты портрета
На всех трех фрагментах был вызван метод onCreateView.
Есть идеи, почему невидимые фрагменты ведут себя не так, как видимые фрагменты?
Этокод, который я использую:
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Log.d("PhotoFragment", "onConfigurationChanged");
FragmentTransaction transaction = getFragmentManager()
.beginTransaction();
transaction.remove(this);
transaction.add(R.id.fragment_container, new PhotoFragment(mPhoto));
transaction.addToBackStack(null);
transaction.commit();
getFragmentManager().popBackStack();
}