首页 > 开发 > Android > 正文

怎样动态的添加Viewpager页面

2017-09-08 15:24:40  来源:网友分享

在不知道具体有多少个页面的情况下,怎么动态的添加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);}}