Java 使用FragmentStatePagerAdapter刷新ViewPager中的片段
我使用的是一个浏览页面,它的滑动功能可以在两个片段之间滑动。但是,我想在刷卡时刷新片段内容。FragmentStatePagerAdapter在缓存方面做得非常好,因此很难让片段重新加载。 我试着把所有的东西都放在onResume方法中,但是没有效果 我的适配器非常简单: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
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);