首页 > 开发 > 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);
}
}