Құрылғының бағытын немесе конфигурациясын өзгерткен кезде пайдаланушы интерфейсін сақтау үшін қандай әдістер бар?
sobes.tech AI
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);
}