viewpager call only 2 oncreateview

38 views Asked by At

i have 4 Fragments in viewpager but if i get into activity that have viewpager only 2 fragments call oncreateview

so remain fragments cant call their component and occurs null pointer error

i have pageradapter and i didnt call them separately

how can i fix this?

--- pageradapter ---

public class SearchPageAdapter extends FragmentPagerAdapter {

    private ArrayList<Fragment> arrayList = new ArrayList<>();
    FragmentManager fragmentManager;

    public SearchPageAdapter(@NonNull FragmentManager fm) {
        super(fm);
        fragmentManager = fm;
        arrayList.add(new SearchPageBookFragment());
        arrayList.add(new SearchPageFeedFragment());
        arrayList.add(new SearchPageChallengeFragment());
        arrayList.add(new SearchPageUserFragment());
    }


    @NonNull
    @Override
    public Fragment getItem(int position) {
        return arrayList.get(position);
    }


    @Override
    public int getCount() {
        return arrayList.size();
    }
}

--- connect viewpager and fragments ---

  searchPageBookFragment = ((SearchPageBookFragment) ((SearchPageAdapter) binding.viewpager.getAdapter()).getItem(0));
 
  searchPageFeedFragment = ((SearchPageFeedFragment) ((SearchPageAdapter) binding.viewpager.getAdapter()).getItem(1));
 
  searchPageChallengeFragment = ((SearchPageChallengeFragment) ((SearchPageAdapter) binding.viewpager.getAdapter()).getItem(2));

  searchPageUserFragment = ((SearchPageUserFragment) ((SearchPageAdapter) binding.viewpager.getAdapter()).getItem(3));

1

There are 1 answers

0
Ravi Sharma On

change viewpager offscreenPageLimit to below

binding.viewPager.offscreenPageLimit = 3

it will initialise all fragment.