查了很多資料,發現要做到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);
}