Всем привет. Имеется приложение сложного типа, в котором есть 3 фрагмента на одной активности. В каждом фрагменте при запуске загружаются данные из базы данных.
Поначалу я не беспокоился о поворотах экрана и делал все по общему принципу: Например для показа диалогов я создавал методы, в них передавал данные (к примеру, текст в EditText), при повороте сохранял все данные в Bundle (показан ли диалог, введенный текст) а в onCreate фрагмента если savedInstanceState != null то я брал данные из Bundle и показывал диалог.
Данные из адаптера списка я тоже сохранял в Bundleс помощью GSON. Позже я получил баг: если данных было слишком много, то Bundle падал из-за нехватки памяти. С горем пополам сделал сохранение данных из адаптера в статичную переменную. Но все равно приложение работало не стабильно.
В конце концов сейчас я убрал все это убрал и выставил в манифесте на активность android:configChanges="orientation|screenSize". Вылезли баги из всех библиотек, пришлось в них редактировать код, в итоге получилось. Но с диалогами я засел. Не пойму, как им обновлять размеры, например если открыть окно в горизонтальной ориентации (контент не умещается, он сжат в ScrollView) и при повороте на вертикальную ориентацию эта самая "сжатость" остается.
Как правильно обработать повороты? Дальше искать решение с диалогами или вернуть все как было? А как тогда сохранять данные адаптера?