查了很多资料,发现要做到ViewPager刷新数据,动态更改adapter的数量那种效果只要实现这个方法就可以了:
private class ViewPageAdapter extends FragmentPagerAdapter {
public ViewPageAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
return fragmentList.get(position);
}
@Override
public int getCount() {
return fragmentList.size();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
}
注意getItemPostion要返回POSTION_NONE时,viewpager会以为没有检测到item的存在从而刷新。但是这种方法不适合数据量比较大的。
我这里用的是Fragment装在到ViewPager中,即使我使用了这个方法,依然达不到效果。有一个地方我也不太明白:如果我在主页去判断数据应该分多个页面出来,也就是分多少个fragment出来时,获取判断是否为最后一页的boolean值总是对不上。有兴趣的可以试试在下面这个newInstance加一个boolean来标记是否为数据的最后一页,因为这种方法行不通,我只能在fragment去判断是不是最后一页。
public static DataFragment newInstance(int page){
DataFragment dataFragment = new DataFragment();
Bundle args = new Bundle();
args.putInt("page", page);
dataFragment.setArguments(args);
return dataFragment;
}
@Override
public void setArguments(Bundle args) {
super.setArguments(args);
page = args.getInt("page", 0);
}