在不知道具体有多少个页面的情况下,怎么动态的添加viewpager页面,实现向右滑动的时候动态的添加一个页面?比如说要是有1000个页面的话,在viewpager的adapter初始化的时候总不能一次性的弄1000个页面吧?我想知道怎么向右滑动的时候,动态的添加一页?
在网上找到一篇跟我问题差不多的,参考一下:http://blog.csdn.net/zxciop110/articl...
viewPager是默认预加载下一页的,所以你可以放一个特殊的对象在数据源的末尾
在遇到预加载的时候不做任何操,在onSelect的时候去更新你的数据源,然后让adapter.notifyDatasetChanged就可以了。
或者在预加载这个特殊对象的时候就做数据源的更新操作。
伪代码:
class News implements Item { } class EmptyNews implements Item { } List<Item> itemList = new ArrayList<Item>(); XXPagerAdapter adapter = new XXPagerAdapter(itemList, getActivity(), ...); itemList.addAll(NewsList...); itemList.add(EmptNews); -------------------------------------------------------------- XXPagerAdapter extends BasePagerAdapter { public Object instantiateItem() { View view = ... final Item item = (item) getItem(position); if (item instanceof EmptyNews) { .... ((XXActivity) activity).doSomething.... } else { .... } return view; } } ----------------------------------------------------- XXActivity extends FragmentActivity { public void doSomething() { new AsyncTask<Void, Void, Void> { doInbackground() { } onPostExecute() { list.addAll(newsList, position); adapter.notifyDatasetChanged(); } }.execute((Void) null); } }