Sobes.tech
Junior — Middle

Құрылғының бағытын немесе конфигурациясын өзгерткен кезде пайдаланушы интерфейсін сақтау үшін қандай әдістер бар?

sobes.tech AI

AI-дан жауап

Android құрылғысының бағытын немесе конфигурациясын өзгерткен кезде әдепкі бойынша әрекеттестік қайта құрылады, бұл пайдаланушы интерфейсінің күйін жоғалтуға әкеледі. UI-ды сақтау үшін келесі әдістер бар:

  1. onSaveInstanceState(Bundle outState) және onRestoreInstanceState(Bundle savedInstanceState) — UI күйін сақтау және қалпына келтіру үшін, мысалы, енгізу өрістерінің мазмұны.

  2. ViewModel — UI-мен байланысты деректерді сақтайды және конфигурация өзгерістерін жеңіп шығады, осылайша күйді жоғалтпайды.

  3. Retain FragmentsetRetainInstance(true) арқылы сақталатын фрагмент, әрекетті қайта құру кезінде сақталады.

  4. Әртүрлі конфигурациялар үшін ресурстарды пайдалану — мысалы, портреттік және ландшафттық ориентациялар үшін әртүрлі layout-файлдар.

  5. Конфигурациялық өзгерістерді қолмен өңдеу 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);
}