首页 > 解决方案 > 在 viewpager 内的片段上调用 ​​onCreateView()

问题描述

我有viewpager4个片段。我已将其设置offscreenPageLimit为 4 并且没有覆盖getItemPosition适配器,因为我不希望每次更改选项卡时都重新创建它们。

fragment现在,当我想要重新创建一个特定的(这意味着调用 onCreateView)时,会有一个场景。那是在我选择之前或再次选择该片段时。这个怎么做?

标签: androidandroid-fragmentsandroid-viewpager

解决方案


请试试这个适配器。这恢复以再次重新创建片段。

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();
    }
}

推荐阅读