我正在使用viewPager将其滑动功能在两个片段之间滑动。但是我想在刷卡时刷新片段内容。 FragmentStatePagerAdapter在缓存方面表现非常出色,因此很难让Fragment重新加载。 我已经尝试将所有内容放在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);
}
}
我已经尝试了堆叠溢出建议的各种事情,包括建议:
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
这没什么区别。
我不是每次都想要破坏这个片段,但我甚至都没能做到这一点。
答案 0 :(得分:2)
我最终做的是编辑设置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
}
});
答案 1 :(得分:-1)
尝试
mViewPager.setOffscreenPageLimit(1);