我创建了一个带圆形页面指示器的视图分页器,它运行良好。现在我有一个新的需求:当我在最后/第一页并尝试向下/向上滑动到下一页/上一页时,我的屏幕应该朝着滑动方向移动至少30%,然后回到原来的位置,因为没有更多的页面可以导航。当然,我在顶部有页面指示器,告诉我可用页面的位置。我希望我的需求清楚明确。我该如何实现它?请帮帮我。提前感谢您。
ViewPager.OnPageChangeListener pagerListener = new ViewPager.OnPageChangeListener() {
boolean lastPageChange = false;
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels){
int lastIdx = mPgScreenAdapter.getCount() - 1;
Log.d(TAG, "pos:" + position);
if(lastPageChange && position == lastIdx)
PPIntent.changeScene(curAct, new Intent(curAct, LoginActivity.class), true);
}
@Override
public void onPageSelected( int i) {
pgText.setCurrentItem(i/2);
}
@Override
public void onPageScrollStateChanged(int state) {
int lastIdx = mPgScreenAdapter.getCount() - 1;
int curItem = pgScreen.getCurrentItem();
if(curItem==lastIdx /*&& lastPos==lastIdx*/ && state==1) lastPageChange = true;
else lastPageChange = false;
}
};
这是自动的。操作系统内置了指示器,告诉用户视图无法进一步滑动。操作系统会在屏幕侧面显示发光点,用户无法再拉动。
不确定是否可以创建自己独特的UI来处理此问题 - 操作系统提供了一个开箱即用的指示器。