碰到一个需求,复杂页面,需要刷新的时候,viewpager的fragment会有旧数据的缓存,导致数据错乱,必须退出app,重新加载,数据才恢复正确。刷新的时候,不管刷新多少次,错误的数据,始终无法更新,这个时候,找了一天,总算找到问题就,就是把适配器的继承的类改一下就行。
package com.example.rcui;
import android.support.annotation.NonNull;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.app.FragmentStatePagerAdapter;
import android.support.v4.view.PagerAdapter;
import java.util.List;
// FragmentPagerAdapter 改为 FragmentStatePagerAdapter
public class MyPagerAdapter extends FragmentStatePagerAdapter{
private List<Fragment> mFragments;
public MyPagerAdapter(FragmentManager fm, List<Fragment> fragments) {
super(fm);
this.mFragments = fragments;
}
@Override
public int getCount() {
return mFragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return String.valueOf(position);
}
@Override
public Fragment getItem(int position) {
return mFragments.get(position);
}
@Override
public int getItemPosition(@NonNull Object object) {
return PagerAdapter.POSITION_NONE;
}
}
在处理一个复杂页面的刷新需求时,遇到ViewPager中的Fragment数据错乱的问题。即使多次刷新,错误数据也无法更新。最终发现,问题在于使用了FragmentPagerAdapter而不是FragmentStatePagerAdapter。将适配器的基类改为FragmentStatePagerAdapter后,解决了数据缓存导致的错误,确保了数据在刷新时能正确更新。


被折叠的 条评论
为什么被折叠?



