博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 页面滑动
阅读量:6849 次
发布时间:2019-06-26

本文共 1773 字,大约阅读时间需要 5 分钟。

1、PagerAdapter适配器
    
  PagerAdapter主要是viewpager的适配器,而viewPager是android.support.v4扩展中新添加的一个强大控件,可以实现控件的滑动效果,
继承pageradapter,至少必须要重写以下四个方法:
  • instantiateItem(ViewGroup, int)
  • destroyItem(ViewGroup, int, Object)
  • getCount()
  • isViewFromObject(View, Object)
具体含义以及使用如下:
private class ViewPagerAdapter extends PagerAdapter {            // 获取要滑动的控件的数量,在这里我们以滑动的广告栏为例,那么这里就应该是展示的广告图片的ImageView数量          @Override          public int getCount() {              return images.size();          }            // 来判断显示的是否是同一张图片,这里我们将两个参数相比较返回即可          @Override          public boolean isViewFromObject(View arg0, Object arg1) {              return arg0 == arg1;          }            // PagerAdapter只缓存三张要显示的图片,如果滑动的图片超出了缓存的范围,就会调用这个方法,将图片销毁          @Override          public void destroyItem(ViewGroup view, int position, Object object) {              view.removeView(images.get(position));          }            // 当要显示的图片可以进行缓存的时候,会调用这个方法进行显示图片的初始化,我们将要显示的ImageView加入到ViewGroup中,然后作为返回值返回即可          @Override          public Object instantiateItem(ViewGroup view, int position) {              view.addView(images.get(position));              return images.get(position);          }      }

 

2、OnPageChangeListener接口
   
  OnPageChangeListener是ViewPager在处理滑动事件的时候需要用到的,这个接口需要实现三个方法:
  • onPageScrollStateChanged(int state)
        此方法是在状态改变时调用的,有三种状态(0,1,2)。当arg0=1时表示正在滑动,arg0=2时表示滑动完毕,arg0=3表示什么都没做。
当页面开始滑动时,三种状态的变化顺序是(1,2,0)
 
  • onPageScrolled(int position,float positionOffset,int positionOffsetPixels)
        当页面滑动的时候会调用此方法,直到滑动完毕。这三个参数的含义分别为:
  1. position:当前页面,及滑动的页面
  2. positionOffset:当前页面滑动的比例,如果页面向右翻动,则值不断变大,最后在趋近1的时候变为0.如果向左翻动,则不断变小,最后变为0
  3. positionOffsetPixels:当前页面滑动像素,变化情况和positionOffset一致
 
  • onPageSelected(int position)
        此方法是页面跳转完后调用,position代表你当前选中页面的位置编号

 

转载于:https://www.cnblogs.com/longzhongren/p/6075037.html

你可能感兴趣的文章
【历史十大黑客事件:不堪一击的系统】
查看>>
localstorage跟sessionstorage
查看>>
jquery toggle(listenerOdd, listenerEven)
查看>>
VisualStudio快捷键
查看>>
12月3日 第一篇日志
查看>>
实训作业1
查看>>
与操作
查看>>
SVN无法读取cruuent修复方法 Can't read file : End of file found 文件:txn_current、current...
查看>>
密码术基础
查看>>
清除浮动的五种方法
查看>>
java面试题 Web基础 BAT面试题系列 基础篇(十五)
查看>>
OS X 10.9 Mavericks下如何安装Command Line Tools(命令行工具)
查看>>
redis常用命令及结构
查看>>
Ubuntu下访问Windows中Postgresql
查看>>
mfc模态对话框
查看>>
DirectX 读书笔记(14) Cube mapping之SkyBox[转]
查看>>
移动端web开发初探之Vuejs的简单实战
查看>>
Team Project Proposal for ASE Course---query suggestion by 3D tag cloud
查看>>
IDEA2016.3搭建Struts2+Hibernate+Spring项目环境
查看>>
多线程(一)线程创建的三种方式
查看>>