Welke methoden bestaan er om de gebruikersinterface te behouden bij het wijzigen van de oriëntatie of configuratie van het apparaat?
sobes.tech AI
Antwoord van AI
При изменении ориентации или конфигурации устройства в Android активность по умолчанию пересоздаётся, что приводит к потере состояния пользовательского интерфейса. Для сохранения UI существуют следующие методы:
-
onSaveInstanceState(Bundle outState) и onRestoreInstanceState(Bundle savedInstanceState) — позволяют сохранить и восстановить состояние UI, например, содержимое полей ввода.
-
ViewModel — хранит данные, связанные с UI, и переживает изменения конфигурации, позволяя не терять состояние.
-
Retain Fragment — фрагмент с
setRetainInstance(true)сохраняется при пересоздании активности. -
Использование ресурсов с разметкой для разных конфигураций — например, разные layout-файлы для портретной и ландшафтной ориентации.
-
Обработка конфигурационных изменений вручную через
android:configChangesв манифесте, чтобы предотвратить пересоздание активности (не рекомендуется для сложных UI).
Пример сохранения состояния поля ввода:
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("input_text", editText.getText().toString());
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
String text = savedInstanceState.getString("input_text");
editText.setText(text);
}