ViewPager的onPageChangeListener三个方法的执行顺序及细节

来源:互联网 发布:国家纳米科学中心知乎 编辑:程序博客网 时间:2024/05/16 13:02
1,ViewPager的onPageChangeListener有三个方法分别是
   onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
   onPageSelected(int position)
   onPageScrollStateChanged(int state)
2,当ViewPager页面可见时,执行
   onPageScrolled(int position, float positionOffset, int positionOffsetPixels),此时三个参数的值分别是position=0,positionOffset=0.0,positionOffsetPixels=0
3,当按住页面并往左拖动并且手指未松开时,先执行onPageScrollStateChanged(int state),此时,state=1,
然后执行onPageScrolled(int position, float positionOffset, int positionOffsetPixels),此时该方法的三个参数分别为position=0,positionOffset从0.0开始逐渐增加但始终小于1,positionOffsetPixels从0开始增加,但始终小于屏幕宽度的分辨率
4,继续第三条的状态,如果positionOffset<0.6时松开手指,此时还是回到原来的界面,而不显示新的界面,反之将显示新的界面,
5,当拖动后松开手指,无论是否显示新的界面,将先执行onPageScrollStateChanged(int state),此时,state=2,然后不断执行onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
   5.1  如果滑动到新的界面,将执行onPageSelected(int position),postion将被赋予当前页面的索引,然后不断         执行onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
positionOffsetpositionOffsetPixels的值都变为0时,执行onPageScrollStateChanged,
        此时state=0
   5.2  如果回到当前的页面,将首先不断执行
        onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
positionOffsetpositionOffsetPixels的值都变为0时,执行onPageScrollStateChanged,
        此时state=0
0 0
原创粉丝点击