禁用ViewPager上的最后一页

时间:2014-08-20 19:00:27

标签: android android-viewpager viewpagerindicator

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

示例我的当前页面是199这里刷卡是disble并且从不更改为下一页,只有前一页。

编辑:我在Tabindicator中有一个日历,页面显示一天的信息,我需要显示第二天但不刷卡因为不存在信息因此我需要禁用此页面。< / p>

考试:

19 /前/ 2014 | 20 /前/ 2014 | 21 /前/ 2014

之前|当前|最后一页

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

1 个答案:

答案 0 :(得分:0)

您可以从适配器返回199来自viewcager不知道有200页的适配器。

编辑:

那么在这种情况下,你必须覆盖viewpager并在viewpager显示倒数第二页时手动禁用动作。 它看起来像这样 首先扩展:类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);
    }
}