ViewPager中监听事件的解析

参考来源:http://blog.csdn.net/xipiaoyouzi/article/details/12121131
http://www.cnblogs.com/exmyth/p/4555814.html

监听事件的解析:

对ViewPager的滑动监听事件进行一个解析:调用要用到OnPageChangeListener接口,实现其中的三个方法:
onPageScrolled(int position, float positionOffset, int positionOffsetPixels)
onPageSelected(int position)
onPageScrollStateChanged(int state)
1:
            /**
             * 屏幕在滚动的过程中会不断的调用
             * position:当前page的位置
             * positionOffset:0——1之前的变化  (0 <= x < 1)
             * positionOffsetPixels:偏移的像素量
             */
         onPageScrolled(int position, float positionOffset, int positionOffsetPixels) 
             打印出的日志如下(右滑的打印日志):(position:这个值只有在当滑动成功的时候才会变成我们滑动到的那个页面的值;positionOffset:如果页面向右翻动,这个值不断变大,最后在趋近1的情况后突变为0。如果页面向左翻动,这个值不断变小,最后变为0;positionOffsetPixels:表示的就是当前页面滑动的像素数是多少,变化趋势是向右滑,该值会不断的变大,左滑,该值会不断的变小)
         E/tag: 0,0.0,0
         E/tag: 0,0.009259259,10
         E/tag: 0,0.027777778,30
         E/tag: 0,0.04074074,44
         E/tag: 0,0.055555556,60
         E/tag: 0,0.0712963,77
         E/tag: 0,0.08611111,93
         E/tag: 0,0.096296296,104
         E/tag: 0,0.106481485,115
         E/tag: 0,0.11481482,124
         E/tag: 0,0.12222222,132
         E/tag: 0,0.12962963,140
         E/tag: 0,0.13796297,149
         E/tag: 0,0.14814815,160
         E/tag: 0,0.1574074,170
         E/tag: 0,0.16018519,173
         E/tag: 0,0.16203703,174
         E/tag: 0,0.1675926,181
         E/tag: 0,0.1712963,185
         E/tag: 0,0.17592593,190
         E/tag: 0,0.17962962,194
         E/tag: 0,0.18333334,198
         E/tag: 0,0.18703704,202
         E/tag: 0,0.19259259,208
         E/tag: 0,0.19722222,213
         E/tag: 0,0.20555556,222
         E/tag: 0,0.21666667,234
         E/tag: 0,0.2212963,239
         E/tag: 0,0.22685185,245
         E/tag: 0,0.23425926,253
         E/tag: 0,0.23425926,253
         E/tag: 0,0.23796296,257
         E/tag: 0,0.24259259,262
         E/tag: 0,0.24351852,263
         E/tag: 0,0.2462963,266
         E/tag: 0,0.25,270
         E/tag: 0,0.25277779,273
         E/tag: 0,0.25555557,276
         E/tag: 0,0.2611111,282
         E/tag: 0,0.2638889,285
         E/tag: 0,0.26944444,291
         E/tag: 0,0.27222222,294
         E/tag: 0,0.2777778,300
         E/tag: 0,0.2851852,308
         E/tag: 0,0.2935185,317
         E/tag: 0,0.29907408,323
         E/tag: 0,0.30648148,331
         E/tag: 0,0.31574073,341
         E/tag: 0,0.32407406,349
         E/tag: 0,0.33425927,361
         E/tag: 0,0.34351853,371
         E/tag: 0,0.35833332,387
         E/tag: 0,0.375,405
         E/tag: 0,0.39074075,422
         E/tag: 0,0.4037037,436
         E/tag: 0,0.42037037,454
         E/tag: 0,0.43055555,465
         E/tag: 0,0.43703705,472
         E/tag: 0,0.4462963,482
         E/tag: 0,0.44907406,484
         E/tag: 0,0.45185184,488
         E/tag: 0,0.4537037,490
         E/tag: 0,0.4564815,493
         E/tag: 0,0.4611111,498
         E/tag: 0,0.4611111,498
         E/tag: 0,0.4611111,498
         E/tag: 0,0.46296296,500
         E/tag: 0,0.46574074,503
         E/tag: 0,0.46851853,506
         E/tag: 0,0.4722222,510
         E/tag: 0,0.47592592,514
         E/tag: 0,0.4787037,517
         E/tag: 0,0.48240742,521
         E/tag: 0,0.48518518,524
         E/tag: 0,0.48796296,527
         E/tag: 0,0.48981482,529
         E/tag: 0,0.49166667,531
         E/tag: 0,0.49722221,537
         E/tag: 0,0.49907407,539
         E/tag: 0,0.5046296,545
         E/tag: 0,0.5074074,548
         E/tag: 0,0.51296294,554
         E/tag: 0,0.51574075,557
         E/tag: 0,0.5175926,559
         E/tag: 0,0.52037036,562
         E/tag: 0,0.5231481,564
         E/tag: 0,0.52592593,568
         E/tag: 0,0.53055555,573
         E/tag: 0,0.5314815,574
         E/tag: 0,0.53333336,576
         E/tag: 0,0.5361111,579
         E/tag: 0,0.537963,581
         E/tag: 0,0.5407407,584
         E/tag: 0,0.54351854,587
         E/tag: 0,0.5472222,591
         E/tag: 0,0.54814816,592
         E/tag: 0,0.5509259,595
         E/tag: 0,0.5537037,598
         E/tag: 0,0.5574074,602
         E/tag: 0,0.5601852,605
         E/tag: 0,0.5638889,609
         E/tag: 0,0.5675926,613
         E/tag: 0,0.5694444,615
         E/tag: 0,0.57222223,618
         E/tag: 0,0.57685184,623
         E/tag: 0,0.5796296,625
         E/tag: 0,0.5833333,630
         E/tag: 0,0.5861111,633
         E/tag: 0,0.5888889,636
         E/tag: 0,0.59074074,638
         E/tag: 0,0.59537035,643
         E/tag: 0,0.59814817,646
         E/tag: 0,0.6027778,651
         E/tag: 0,0.6064815,655
         E/tag: 0,0.6074074,656
         E/tag: 0,0.6101852,659
         E/tag: 0,0.61388886,662
         E/tag: 0,0.6175926,667
         E/tag: 0,0.6203704,670
         E/tag: 0,0.6212963,671
         E/tag: 0,0.62314814,673
         E/tag: 0,0.6259259,676
         E/tag: 0,0.6296296,680
         E/tag: 0,0.63148147,682
         E/tag: 0,0.6333333,684
         E/tag: 0,0.63796294,689
         E/tag: 0,0.64166665,693
         E/tag: 0,0.6425926,694
         E/tag: 0,0.6462963,698
         E/tag: 0,0.65,702
         E/tag: 0,0.65462965,707
         E/tag: 0,0.6574074,710
         E/tag: 0,0.662963,716
         E/tag: 0,0.6666667,720
         E/tag: 0,0.6703704,724
         E/tag: 0,0.67407405,728
         E/tag: 0,0.6787037,733
         E/tag: 0,0.68425924,739
         E/tag: 0,0.6953704,751
         E/tag: 0,0.7212963,779
         E/tag: 0,0.7416667,801
         E/tag: 0,0.7861111,849
         E/tag: 0,0.80277777,867
         E/tag: 0,0.8324074,899
         E/tag: 0,0.85555553,924
         E/tag: 0,0.8796296,950
         E/tag: 0,0.8962963,968
         E/tag: 0,0.9111111,984
         E/tag: 0,0.9287037,1003
         E/tag: 0,0.9398148,1015
         E/tag: 0,0.95,1026
         E/tag: 0,0.96018517,1037
         E/tag: 0,0.9675926,1045
         E/tag: 0,0.97314817,1051
         E/tag: 0,0.9787037,1057
         E/tag: 0,0.98333335,1062
         E/tag: 0,0.98703706,1066
         E/tag: 0,0.9898148,1069
         E/tag: 0,0.9925926,1072
         E/tag: 0,0.99444443,1074
         E/tag: 0,0.9953704,1075
         E/tag: 0,0.99722224,1077
         E/tag: 0,0.99814814,1078
         E/tag: 0,0.9990741,1079
         E/tag: 1,0.0,0
2:
             /**
             * 当前哪一个页面被选中
             * @param position  当前选中的页面的页数
             */
             onPageSelected(int position)
3:
            /**
             *  手指在操作屏幕的时候会发生变化的时候调用
             * @param state   状态值    0:end    1:press    2:up
             */
       @Override
        public void onPageScrollStateChanged(int state) {
            if (state == 0) {
                Log.e("tag1", "state_end:"+String.valueOf(state));
            } else if (state == 1) {
                Log.e("tag1", "state_press:"+String.valueOf(state));
            }else if (state == 2) {
                Log.e("tag1", "state_up:"+String.valueOf(state));
            }

        }
        打印日志如下:
     E/tag1: state_press:1
     E/tag1: state_up:2
     E/tag1: state_end:0
     E/tag1: state_press:1
     E/tag1: state_up:2
     E/tag1: state_end:0
     E/tag1: state_press:1
     E/tag1: state_up:2
     E/tag1: state_end:0

当用手指滑动翻页时,手指按下去的时候会触发这个方法,state值为1,手指抬起时,如果发生了滑动(即使很小),这个值会变为2,然后最后变为0 。总共执行这个方法三次。

4:综述
三个方法的执行顺序为:用手指滑动时,最先执行一遍onPageScrollStateChanged(1——press),然后不断执行onPageScrolled,放手指的时候,直接立即执行一次onPageScrollStateChanged(2--up),然后立即执行一次onPageSelected,然后再不断执行onPageScrollStateChanged,最后执行一次onPageScrollStateChanged(0--end)。        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值