Java 使用FragmentStatePagerAdapter刷新ViewPager中的片段

Java 使用FragmentStatePagerAdapter刷新ViewPager中的片段,java,android,android-fragments,android-viewpager,Java,Android,Android Fragments,Android Viewpager,我使用的是一个浏览页面,它的滑动功能可以在两个片段之间滑动。但是,我想在刷卡时刷新片段内容。FragmentStatePagerAdapter在缓存方面做得非常好,因此很难让片段重新加载。 我试着把所有的东西都放在onResume方法中,但是没有效果 我的适配器非常简单: public class AdapterHomePre extends FragmentStatePagerAdapter { ArrayList<Fragment> mFrags = new Array

我使用的是一个浏览页面,它的滑动功能可以在两个片段之间滑动。但是,我想在刷卡时刷新片段内容。FragmentStatePagerAdapter在缓存方面做得非常好,因此很难让片段重新加载。 我试着把所有的东西都放在onResume方法中,但是没有效果

我的适配器非常简单:

public class AdapterHomePre extends FragmentStatePagerAdapter {

    ArrayList<Fragment> mFrags = new ArrayList<Fragment>();

    public AdapterHomePre(FragmentManager fm) {
        super(fm);

        mFrags.add(new FragmentOne());
        mFrags.add(new FragmentTwo());
    }

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

    @Override
    public Fragment getItem(int position) {
        return mFrags.get(position);
    }
}
这没什么区别


我真的不想每次都破坏碎片,但我甚至都没能让它工作

我最后做的是编辑设置viewPager的片段,以便强制子片段重新加载:

    mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i2) {
            //Not used
        }

        @Override
        public void onPageSelected(int position) {
            //Force the fragment to reload its data
            Fragment f = mAdapter.getItem(position);
            f.onResume();
        }

        @Override
        public void onPageScrollStateChanged(int i) {
            //Not used
        }
    });
试一试


有同样的问题,其余的事情都不管用。。所以我必须走这条路。
    mViewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int i, float v, int i2) {
            //Not used
        }

        @Override
        public void onPageSelected(int position) {
            //Force the fragment to reload its data
            Fragment f = mAdapter.getItem(position);
            f.onResume();
        }

        @Override
        public void onPageScrollStateChanged(int i) {
            //Not used
        }
    });
mViewPager.setOffscreenPageLimit(1);