viewpage监听滑动到最后一页了
private boolean isLastPage = false;
private boolean isDragPage = false;
private boolean canJumpPage = true;
//监听ViewPager的跳转状态,当跳转到最后一页时,执行jumpToNext()方法
viewpager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
/**
* 在屏幕滚动过程中不断被调用
* @param position
* @param positionOffset 是当前页面滑动比例,如果页面向右翻动,这个值不断变大,最后在趋近1的情况后突变为0。如果页面向左翻动,这个值不断变小,最后变为0
* @param positionOffsetPixels 是当前页面滑动像素,变化情况和positionOffset一致
*/
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
Log.v("AAA",isLastPage+" "+isDragPage+" "+positionOffsetPixels);
if (isLastPage && isDragPage && positionOffsetPixels == 0) { //当前页是最后一页,并且是拖动状态,并且像素偏移量为0
if (canJumpPage) {
canJumpPage = false;
JumpToNext();
}
}
}
/**
* 这个方法有一个参数position,代表哪个页面被选中
* @param position 当前页的索引
*/
@Override
public void onPageSelected(int position) {
isLastPage = position == mImgIds.length-1;
}
/**
* 在手指操作屏幕的时候发生变化
* @param state 有三个值:0(END),1(PRESS) , 2(UP) 。
*/
@Override
public void onPageScrollStateChanged(int state) {
isDragPage = state == 1;
}
});