黑马程序员技术交流社区

标题: [深圳特色][问答网]PagerAdapter中的destroyItem等方法的作用? [打印本页]

作者: 深圳黑马程序员    时间: 2015-11-29 18:29
标题: [深圳特色][问答网]PagerAdapter中的destroyItem等方法的作用?
本帖最后由 xiaoqing 于 2015-11-29 18:35 编辑

在开发Android应用时,经常用的ViewPager来展现多页面滑动显示的效果,而适配器模式则是Android里常见的设计模式。PagerAdapter就是常用的对ViewPager进行适配的适配器。这次深圳问答网的师生探讨的是PagerAdapter里几个函数的作用:




学生问题:
destroyItem(ViewGroup, int, Object)和isViewFromObject(View, Object)
分别有什么作用?

老师的答案:
直接上代码解释
  1. private class ViewPagerAdapter extends PagerAdapter {

  2.     // 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量
  3.     @Override
  4.     public int getCount() {
  5.         return images.size();
  6.     }

  7.     // 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可
  8.     @Override
  9.     public boolean isViewFromObject(View arg0, Object arg1) {
  10.         return arg0 == arg1;
  11.     }

  12.     // PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁
  13.     @Override
  14.     public void destroyItem(ViewGroup view, int position, Object object) {
  15.         view.removeView(images.get(position));
  16.     }

  17.     // 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可
  18.     @Override
  19.     public Object instantiateItem(ViewGroup view, int position) {
  20.         view.addView(images.get(position));
  21.         return images.get(position);
  22.     }
  23. }
复制代码



[深圳特色] 揭秘内部问答网中经典问题,每周更新!
深圳校区除了全国独有问答网,就业老师面试服务,还有更多神秘惊喜等着你,咨询热线:0755-66689855



作者: 小欢    时间: 2015-12-6 22:40
destroyItem是销毁已经划出屏幕view。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2