禁用ViewPager上的最后一页



我在我的应用程序中使用viewpagerIndicator,我有200页。是否可以在最后一页之前禁用滑动1页?

示例我的当前页是199,这里的滑动是禁用的,永远不会改变到下一页,只有前几页。

EDIT:我在Tabindicator中有一个日历,页面显示一天的信息,我需要显示第二天但不滑动,因为不存在信息,因此我需要禁用此页面。

考试:

19/ago/2014 | 20/ago/2014 | 21/ago/2014

before |Current |Last Page

在我可以向左和向右滑动之前,但在当前我只需要向左滑动和禁用右是可能的吗?

你可以从适配器的getCount()返回199,这样viewpager就不会知道有200个页面。

编辑:

在这种情况下,您必须手动覆盖:viewpage和禁用运动时:viewpage第二最后一页。它看起来是这样的首先扩展:类CustomViewPager扩展ViewPager{…}

float lastX;
@Override
    public boolean onInterceptTouchEvent(MotionEvent event) {
    if(getCurrentItem() == getAdapter().getCount()-1){
       if(ev.getAction() == MotionEvent.ACTION_DOWN){
        lastX = ev.getX();
        // Just touch down let viewpager also handle touch event
       return super.onInterceptTouchEvent(event);
       }
       else if(ev.getAction() == MotionEvent.ACTION_MOVE){
          float xDiff = ev.getX() - lastX;
          if(xDiff > 0){
               // Attempt to move right on second last page
               // Return false, we dont want to handle this movement
               return false;
          }
          else{
              // Left you can move
              return super.onInterceptTouchEvent(event); 
          }
       }
       // Notice that we are not updating lastX on motion towards left 
       // This is to enable user can swipe towards left a bit and comeback, but dont dare go right
    }
    else{
      // Not on second last page let viewpager handle page event
      return super.onInterceptTouchEvent(event);
    }
}

最新更新