这里一共碰到两个问题
一个是adapter.notifyDataSetChanged()刷新没有效果。
看了这篇文章解决的https://www.jianshu.com/p/266861496508
核心就是
/**
* fragment适配器
*/
private class MyPagerAdapter extends FragmentStatePagerAdapter {
private final FragmentManager mFragmentManager;
public MyPagerAdapter(FragmentManager fm) {
super(fm);
this.mFragmentManager = fm;
}
@Override
public Fragment getItem(int position) {
return fragments.get(position);
}
@Override
public int getItemPosition(Object object) {//最主要就是加了这个方法。
return POSITION_NONE;
}
@Override
public int getCount() {
return fragments.size();
}
@Override
public CharSequence getPageTitle(int position) {
return tabTitle.get(position);
}
}
另一个问题就是反复滑动viewpager Fragment里面的recycleView容易崩溃。处理方式是给recycleView自定义一个LinearLayoutManager
public class WrapContentLinearLayoutManager extends LinearLayoutManager {
public WrapContentLinearLayoutManager(Context context) {
super(context);
}
@Override
public void onLayoutChildren(RecyclerView.Recycler recycler, RecyclerView.State state) {
try {
super.onLayoutChildren(recycler, state);
} catch (IndexOutOfBoundsException e) {
Log.e("probe", "meet a IOOBE in RecyclerView");
}
}
}