Загрузить данные на вкладку фрагмента списка при создании MainActivity - PullRequest
0 голосов
/ 13 марта 2020

Я абсолютно влюблен в эти новые компоненты Android представляет. Итак, я создаю стандартное мобильное приложение только с одним действием, используя компоненты навигации и компоненты архитектуры, такие как модель представления, так как я выполняю большую связь со своими данными, которые я хранил в комнате.

В одном из моих нижних навигационных вкладок у меня есть список, который загружается из всех моих данных в комнате. До сих пор я настроил свой RecyclerView и мой адаптер в OnCreateView() (единственная функция, используемая в этом фрагменте) этого фрагмента списка, и каждая вещь отображается успешно.

Проблема в том, что каждый раз (особенно более на первый взгляд) фрагмент занимает solid 10 секунд для отображения всех данных (что нормально, учитывая, что их много).

Мой вопрос: есть ли способ адаптера и RecylcerView из этот конкретный c фрагмент может быть настроен (и загрузить все мои данные) в OnCreate() моей единственной деятельности? Так что, когда я впервые вижу фрагмент, все сразу всплывает.

Кроме того, как бы я go использовал OnPause() фрагмента списка, чтобы при переходе на другую вкладку фрагмент списка не разрушался, а когда мы go вернемся к нему, это сразу показывает?

1 Ответ

0 голосов
/ 13 марта 2020

Получить все данные из комнаты внутри onCreate() метод фрагмента. Метод onDestroyView() вызывает каждый раз, когда вы удаляетесь от фрагмента. Для предотвращения воссоздания представлений внутри фрагмента храните представление в переменной.

Пример:

class YourFragment extends Fragment{

    View rootView;

    @Override
    public void onCreate(@Nullable Bundle savedInstanceState) {
        //fetch data from room
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState){
        if(rootView == null)
            rootView = inflater.inflate(R.layout.your_fragment_layout, container, false);
        return rootView;
    }
}
...