Android предназначена так, что при изменении ориентации экрана Активность приложения (и, следовательно, все включенные в него фрагменты) будет уничтожена и снова создана, чтобы обеспечить более естественный переход между различными разметками для портретного и ландшафтного видов. Однако, это может привести к потере состояния фрагментов. Вот простые способы сохранить состояние фрагментов при изменении ориентации экрана: 1. Сохранение и восстановление состояния в методах onSaveInstanceState() и onViewStateRestored() : все простые типы данных, такие как int, String, boolean который составляет состояние фрагмента, может быть сохранено в Bundle в методе onSaveInstanceState(). Затем они могут быть восстановлены в методе onViewStateRestored() или в любом другом методе жизненного цикла фрагмента, когда Bundle передается входящим параметром. 2. Использование метода setRetainInstance(): фрагменты имеют метод setRetainInstance(), который при вызове с аргументом true указывает системе, чтобы она не уничтожала данный фрагмент при изменении конфигурации (например, при повороте экрана). Это сохранит все данные, связанные с фрагментом, но требует осторожности при использовании, так как это может привести к утечкам памяти, если не использовать правильно. 3. ViewModel: ViewModel - это часть библиотеки архитектуры компонентов Android и представляет собой класс, который предназначен для хранения и управления данными UI в жизненном цикле сознательной манере. ViewModel уничтожается только тогда, когда финальная активность или фрагмент, связанный с этой ViewModel, уничтожается. Если активность или фрагмент пересоздается из-за изменения конфигурации, данные в ViewModel остаются. 4. Использование базы данных или SharedPreferences: состояние может быть сохранено в базе данных или в SharedPreferences, которое затем можно прочитать при создании фрагмента. Это может быть полезно для более сложных типов данных или долгосрочного хранения, но может быть избыточным для простого временного хранения состояния.