在viewpager内部的片段上调用onCreateView()

时间:2018-07-27 09:48:48

标签: android android-fragments android-viewpager

我有viewpager,有4个片段。 我将offscreenPageLimit设置为4,并且没有覆盖适配器的getItemPosition,因为我不希望每次更改标签时都重新创建它们。

现在,在某些情况下,我希望重新创建特定的fragment(这意味着调用onCreateView)。 那是在我选择之前或当我再次选择该片段时。 该怎么做?

1 个答案:

答案 0 :(得分:0)

请尝试使用此适配器。恢复后可以重新创建片段。

public class ViewPagerAdapter extends FragmentStatePagerAdapter {

    private Fragment[] fragments;
    private String[] titleList;
    private  int index;
    public ViewPagerAdapter(FragmentManager fm, String[] titleList){ // titleList is list of title of fragments
        super(fm);
        fragments = new Fragment[titleList.length];
        this.titleList = titleList;
    }

    @Override
    public Fragment getItem(int position) {
        Fragment fragment;
        if (fragments[position] == null){
                YourFragment  yourFragment = new YourFragment();
                fragment = yourFragment;
                fragments[position] = fragment;
            return fragment;
        }else{
            return fragments[position];
        }
    }

    @Override
    public int getCount() {
        return titleList.length;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return titleList[position].toUpperCase();
    }
}