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

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
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值