碰到一个需求,复杂页面,需要刷新的时候,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;
}
}