android-fragments 在创建视图时只调用2个视图寻呼机

fcy6dtqo  于 2022-11-13  发布在  Android
关注(0)|答案(1)|浏览(136)

我在viewpager中有4个片段,但如果我进入具有viewpager only 2 fragments call oncreateview的活动
因此剩余片段无法调用其组件,并出现空指针错误
我有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();
    }
}

---连接视图页和片段---

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));
ua4mk5z4

ua4mk5z41#

将视图页离屏页限制更改为以下值

binding.viewPager.offscreenPageLimit = 3

它将初始化所有片段。

相关问题