PagerAdapter简介

PagerAdapter是android.support.v4包中的类,它的子类有FragmentPagerAdapter, FragmentStatePagerAdapter,这两个adapter都是Fragment的适配器,用于实现Fragment的滑动效果,这两个adapter的使用和区别这次就先不介绍了,等下次有时间再做详细的介绍。

PagerAdapter主要是viewpager的适配器,而viewPager则也是在android.support.v4扩展包中新添加的一个强大的控件,可以实现控件的滑动效果,比如咱们在软件中常见的广告栏的滑动效果,用viewPager就可以实现。今天主要介绍如何使用viewPagr并重写PagerAdapter实现常见广告栏的滑动效果。

PagerAdapter用法简介

首先,如果继承pageradapter,至少必须重写下面的四个方法 1 instantiateItem(ViewGroup, int)
2. destroyItem(ViewGroup, int, Object)
3. getCount()
4. isViewFromObject(View, Object) 
下面我们以代码的形式,说明这四个方法的含义以及如何使用

private class ViewPagerAdapter extends PagerAdapter {
// 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量 @Overridepublic int getCount() {return images.size(); }// 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可
@Overridepublic boolean isViewFromObject(View arg0, Object arg1) {return arg0 == arg1; }// PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁
@Overridepublic void destroyItem(ViewGroup view, int position, Object object) {
view.removeView(images.get(position)); }// 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可
@Overridepublic Object instantiateItem(ViewGroup view, int position) {
view.addView(images.get(position)); return images.get(position);
}
}

实现了这四个方法,就可以实现滑动的效果了。

最新文章

  1. SQL Server 2012 新特性
  2. VisualSVN Server和Subversion的联系
  3. iOS-硬件声音 ,振动,提示警告
  4. Linux下Kafka单机安装配置方法(图文)
  5. 【hadoop2.6.0】一句话形容mapreduce
  6. HTML5 Mobile 适应移动端的屏幕<meta name='viewport' content='xxxx'>
  7. UI线程
  8. MySQL长短密码
  9. Alpha冲刺No.5
  10. mssql sqlserver 表增加列后,视图不会自动更新相关列的两种解决方法分享
  11. fetch发送Form Data请求并携带cookie
  12. [React] 05 - Route: connect with ExpressJS
  13. Java 文件类 File
  14. day 32 css后续补充以及js 简单入门
  15. macOS Sierra 10.12.4 (16E195) - Clover [ 20170403 ]
  16. HDU 2544 最短路(最短路&Floyd)题解
  17. 捕捉过滤器(CaptureFilters)和显示过滤器(DisplayFilters)--Wireshark
  18. BZOJ 1834 网络扩容(最大流+费用流)
  19. C++ GUI Qt4编程(08)-3.2spreadsheet-resource
  20. pycharm Python解释器的配置--可以指定批处理文件为解释器

热门文章

  1. docker 和 vagrant 作为程序发布 和 开发的独立而统一的运行环境
  2. SharePoint 创建 Lookup 类型的Site Column解决跨站问题
  3. nginx+php-fpm性能参数优化原则
  4. Docker容器进入的4种方式(转)
  5. Mac使用技巧总结-如何独立设置Mac触摸板方向和鼠标滚轮方向?
  6. get the code of function in matlab
  7. Starting with neural network in matlab[zz]
  8. win8.1安装驱动出现“文件的哈希值不在指定的目录”的解决办法[zz]
  9. 采集java性能指标数据
  10. NSString和NSMutablestring,copy和strong(转载)