ViewPager中监听事件的解析
来源:互联网 发布:js调用手机软键盘事件 编辑:程序博客网 时间:2024/06/05 22:59
参考来源: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)。
0 0
- ViewPager中监听事件的解析
- ViewPager中控件的点击事件监听
- Viewpager的监听事件
- ViewPager的onPageChangeListene监听事件处理
- ViewPager子页面的点击事件监听
- ViewPager的页面滑动监听事件onPageChangeListener
- ViewPager 子页的事件监听
- ViewPager 丢失监听事件的原因之一
- [ViewPager]的使用和事件监听,[Xutils中加载的问题]
- Viewpager设置监听事件不起作用
- java 中 的事件监听
- viewpager的滑动监听
- ViewPager的滑动监听
- ViewPager 监听的问题
- Android ViewPager事件滑动监听修改
- htmlText中图片的事件监听
- Android中按钮的点击事件监听
- java中对按钮的事件监听
- redis——php链接返回false
- Android API Guides---JetPlayer
- java线程
- Leetcode - Binary Tree Level Order Traversal
- 概率论:假设检验-t检验和Augmented Dickey–Fuller test
- ViewPager中监听事件的解析
- java内部类设计的作用详解
- 写给新手程序员的一封信
- 利用AVFoundation实现二维码扫描以及其中的问题
- LeetCode(64)- Min Stack
- 读C#委托与事件笔记
- hdu1045FireNet
- PHP,.net,Java的区别
- Android API Guides---Camera