Методы жизненного цикла фрагмента в любом случае будут вызваны снова.Вы можете узнать, как работать с фрагментом или жизненным циклом действия.
Основная идея работы с жизненным циклом состоит в сохранении состояний просмотра, сохранении данных и т. Д. Если вы используете фрагменты, вы можете использовать сохранение фрагментов: просто в своем фрагменте галереи установите флаг setRetainInstance(true)
, и система победит.Например, не вызывайте методы onCreate()
и onDestroy()
, пока будете поворачивать телефон.Следующим шагом я рекомендую вам использовать AndroidArchitectureComponent, который был представлен в 2017 году Вы можете прочитать об этом здесь.
В вашем случае, я думаю, вам следует создать ViewModel для вашего фрагмента, загрузить данные вваш ViewModel и поместите данные в объект LiveData.Более того, вы должны переопределить onCreate во фрагменте и сохранить фрагмент (как это сделать, я только что описал ранее) и инициировать вашу ViewModel здесь.После этого в onViewCreated или onActivityCreated вам нужно наблюдать за вашими данными через LiveData и ViewModel и просто показывать их без перезагрузки.
Это основной алгоритм.Подобное поведение может быть достигнуто с помощью различных подходов, таких как MVP, RxPM, MVVM (на основе RxJava и RxAndroid) и т. Д. Я полагаю, что не главная цель моего ответа - описать все эти шаблоны здесь.В Интернете много информации (также и о StackOverflow), просто попробуйте найти ее.
Основная идея заключается в том, что вы должны загрузить в объект что-то, что может выжить, пока представление разрушается, и просто сказать:представление, чтобы получить доступные данные из этого объекта, когда представление будет готово сделать это.