Recyclerview с динамическими данными во Fragment не будет обновляться, пока я не нажму на другие вкладки - PullRequest
0 голосов
/ 18 июня 2019

У меня есть 4 фрагмента в ViewPager.3 из них имеют статические данные, другой загружает данные с удаленного сервера.Когда я запускаю программу, все фрагменты со статическими данными RecyclerView загружаются совершенно нормально.Но тот, который содержит динамические данные, не будет отображаться, пока я не уйду со страницы, а затем снова не выберу вкладку (или не вернусь назад).

Я пробовал решения, объясненные здесь Динамически обновлять ViewPager? но я не могу заставить его работать

private void initialize () {

    //Create fragments and setup viewpager
    frag_categories = new Fragment_Categories();
    frag_deals =  new Fragment_Deals();
    frag_favourites = new Fragment_Favorites();
    frag_sangwapo = new Fragment_Sangwapo();

    setupViewPager(viewPager);

    //prepare tabLayout
    tabLayout =  findViewById(R.id.tabs);
    tabLayout.setupWithViewPager(viewPager);
    setupTabIcons();
    tabLayout.getTabAt(1).select();
    tabLayout.addOnTabSelectedListener(this);
}


private void setupViewPager(ViewPager viewPager) {
    adapter = new AdapterViewPager(getSupportFragmentManager());
    adapter.addFragment(frag_favourites, "Stores");
    adapter.addFragment(frag_categories, "Categories");
    adapter.addFragment(frag_deals, "Deals");
    adapter.addFragment(frag_sangwapo, "Sangwapo");
    viewPager.setAdapter(adapter);
    viewPager.setOffscreenPageLimit(0);
}

// Внутри фрагмента не обновляется

adapterSangwapo = new AdapterSangwapo(getActivity(),list);
        LinearLayoutManager linearLayoutManager = new LinearLayoutManager(getActivity(),LinearLayoutManager.VERTICAL,false);
        recyclerView.setLayoutManager(linearLayoutManager);
        recyclerView.setAdapter(adapterSangwapo);
        updateListItems();

, где заполняется updateListItemsArrayList (список) и вызов notifyDataSetChanged для адаптеровangwapo

Даже когда я пытаюсь viewPager.setOffscreenPageLimit(3);, он все равно не будет обновляться, пока я не уеду.Я также попробовал и FragmentPagerAdapter и FragmentStatePagerAdapte

Нет отображаемых ошибок.

...