Как сохранить состояние фрагмента с помощью BottomNavigationBar? - PullRequest
2 голосов
/ 09 июля 2020

У меня BottomNavigationBar с пятью вкладками. В этом фрагменте я загружаю данные с сервера. Моя проблема в том, что фрагмент каждый раз загружает данные при смене вкладки. Я не хочу загружать данные каждый раз.

Я знаю, что это возможно с помощью onSaveInstanceState(), но полезно сохранить небольшой объем данных.

И еще одно, В приложении есть все фрагменты, поэтому я не могу найти решение моей проблемы. Приветствуется любая помощь

MainActivity:

 private boolean loadFragment(Fragment fragment) {
    if (fragment != null) {
        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.fragmentContainer, fragment)
                .commit();
        return true;
    }
    return false;
}

1 Ответ

3 голосов
/ 09 июля 2020

Вы пишете свое приложение на архитектурном шаблоне MVVM? Если да, я думаю, вы можете использовать Shared ViewModel. Android док. Обмен данными между фрагментами Переполнение стека: обмен данными между фрагментами с использованием нового архитектурного компонента ViewModel Думаю, это может вам помочь. Если вы загружаете данные в класс ViewModel, вы можете использовать их во всех фрагментах, даже если ваше приложение остановлено. Вам не нужно загружать его снова.

...