我们给viewpager设置监听的时候,对于这个地方的几个函数,我总是记不太清楚,今天就好好整理整理。
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
System.out.println("onpageselect = " + arg0);
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
System.out.println("onPageScrolled = " + arg0 + ", " + arg1 + ", " + arg2);
}
@Override
public void onPageScrollStateChanged(int arg0) {
System.out.println("onPageScrollStateChanged = " + arg0);
}
});
大概先解释一下上面几个函数中各个参数的含义:
1.onPageSelected(int arg0) 指的是当前选择的是哪个页面
2. onPageScrolled(int arg0, float arg1, int arg2) arg0表示目标,arg1表示偏移的百分比,arg2表示偏移的像素
3. onPageScrollStateChanged(int arg0) 表示当前滑动的状态,只有三个状态0, 1, 2,下面我们结合打印的日志来具体看看他们的含义
下面是正常的向右滑动(6->7)的打印日志
01-03 06:35:27.142: I/System.out(27590): onPageScrollStateChanged = 1
01-03 06:35:27.143: I/System.out(27590): onPageScrolled = 6, 0.012500048, 6
01-03 06:35:27.160: I/System.out(27590): onPageScrolled = 6, 0.0333333, 15
01-03 06:35:27.179: I/System.out(27590): onPageScrolled = 6, 0.08958328, 42
01-03 06:35:27.200: I/System.out(27590): onPageScrolled = 6, 0.14374995, 68
01-03 06:35:27.215: I/System.out(27590): onPageScrolled = 6, 0.19791663, 94
01-03 06:35:27.232: I/System.out(27590): onPageScrolled = 6, 0.21875, 105
01-03 06:35:27.253: I/System.out(27590): onPageScrollStateChanged = 2
01-03 06:35:27.254: I/System.out(27590): onpageselect = 7
01-03 06:35:27.265: I/System.out(27590): onPageScrolled = 6, 0.2833333, 135
01-03 06:35:27.267: I/System.out(27590): onPageScrolled = 6, 0.30208337, 145
01-03 06:35:27.276: I/System.out(27590): onPageScrolled = 6, 0.35208333, 169
01-03 06:35:27.276: I/System.out(27590): onPageScrolled = 6, 0.35625005, 171
01-03 06:35:27.294: I/System.out(27590): onPageScrolled = 6, 0.45000005, 216
01-03 06:35:27.294: I/System.out(27590): onPageScrolled = 6, 0.45416665, 218
01-03 06:35:27.312: I/System.out(27590): onPageScrolled = 6, 0.5354167, 257
01-03 06:35:27.312: I/System.out(27590): onPageScrolled = 6, 0.5395833, 259
01-03 06:35:27.329: I/System.out(27590): onPageScrolled = 6, 0.61041665, 293
01-03 06:35:27.347: I/System.out(27590): onPageScrolled = 6, 0.67291665, 323
01-03 06:35:27.347: I/System.out(27590): onPageScrolled = 6, 0.6770834, 325
01-03 06:35:27.365: I/System.out(27590): onPageScrolled = 6, 0.7291666, 349
01-03 06:35:27.365: I/System.out(27590): onPageScrolled = 6, 0.73125005, 351
01-03 06:35:27.382: I/System.out(27590): onPageScrolled = 6, 0.7770833, 372
01-03 06:35:27.400: I/System.out(27590): onPageScrolled = 6, 0.8166667, 392
01-03 06:35:27.400: I/System.out(27590): onPageScrolled = 6, 0.81875, 393
01-03 06:35:27.418: I/System.out(27590): onPageScrolled = 6, 0.8541666, 409
01-03 06:35:27.435: I/System.out(27590): onPageScrolled = 6, 0.88125, 423
01-03 06:35:27.453: I/System.out(27590): onPageScrolled = 6, 0.90625, 435
01-03 06:35:27.471: I/System.out(27590): onPageScrolled = 6, 0.92499995, 443
01-03 06:35:27.471: I/System.out(27590): onPageScrolled = 6, 0.9270834, 445
01-03 06:35:27.489: I/System.out(27590): onPageScrolled = 6, 0.9416667, 452
01-03 06:35:27.489: I/System.out(27590): onPageScrolled = 6, 0.94375, 453
01-03 06:35:27.506: I/System.out(27590): onPageScrolled = 6, 0.95624995, 458
01-03 06:35:27.524: I/System.out(27590): onPageScrolled = 6, 0.9666667, 464
01-03 06:35:27.542: I/System.out(27590): onPageScrolled = 6, 0.975, 468
01-03 06:35:27.559: I/System.out(27590): onPageScrolled = 6, 0.98125