android - 怎样动态的添加Viewpager页面
阿神
阿神 2017-04-17 11:11:50
[Android讨论组]

在不知道具体有多少个页面的情况下,怎么动态的添加viewpager页面,实现向右滑动的时候动态的添加一个页面?比如说要是有1000个页面的话,在viewpager的adapter初始化的时候总不能一次性的弄1000个页面吧?我想知道怎么向右滑动的时候,动态的添加一页?

在网上找到一篇跟我问题差不多的,参考一下:http://blog.csdn.net/zxciop110/articl...

阿神
阿神

闭关修行中......

全部回复(1)
高洛峰

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);
}
}
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号