当前位置: 首页 > 知识库问答 >
问题:

禁用ViewPager上的最后一页

姜锋
2023-03-14

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

例如,我的当前页面是199页,这里滑动是不可用的,永远不会改变到下一页,只有上一页。

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

考试:

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

之前|当前|最后一页

在之前,我可以左右滑动,但在当前,我只需要左右滑动就可以了?

共有1个答案

萧自珍
2023-03-14

您可以从适配器从 getCount() 返回 199,这样 viewpager 就不会知道有 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);
    }
}
 类似资料:
  • 我有一个视图寻呼机,在其中一个片段中,我有两个单独的片段,分别包含一个垂直和一个水平的回收视图。 当我将水平循环视图滚动到最后一个项目并尝试进一步滑动时,视图寻呼机滚动到下一页。我不想发生这种事。当我试图覆盖水平循环视图时,我想禁用viewpager的分页。 但是,当我在其他地方滑动时,我不想禁用viewpager的分页功能。例如,如果我在垂直recyclerview或父片段中的任何空白区域上滑动

  • 本文向大家介绍Android viewpager在最后一页滑动之后跳转到主页面的实例代码,包括了Android viewpager在最后一页滑动之后跳转到主页面的实例代码的使用技巧和注意事项,需要的朋友参考一下 先给大家说下实现思路 主要有是两个监听: 一是addOnPageChangeListener();二是setOnTouchListener(); addOnPageChangeListen

  • 问题内容: 计算上一季度最后一天的最有效方法是什么? 示例:给定日期11/19/2008,我想返回9/30/2008。 平台是SQL Server 问题答案: 如果@Date有日期问题 编辑:感谢下面的@strEagle,更简单的是:

  • 我想禁用刷卡,但仅限于右侧。我在这个答案中找到了一个有效的解决方案。不幸的是,这复制了整个源代码以实现目标。有没有只继承现有类而不复制的方法?

  • 当JRadioButton设置为final时,如何更改其标签? 这是构造函数中初始化单选按钮的一段代码,当按下检查按钮时,选定的单选按钮的值被发送到验证用户答案的方法: 选择“下一个问题”按钮时,单选按钮的文本标签需要更改为下一组答案。不幸的是,由于单选按钮设置为final,这会导致应用程序崩溃。 我该怎么做?

  • 本文向大家介绍Android中Viewpager禁止滑动的实现,包括了Android中Viewpager禁止滑动的实现的使用技巧和注意事项,需要的朋友参考一下 前言 现在很多app,首页不允许滑动切换(因为页面加载吧),但是又用viewpage来管理frgament.因为方便嘛. 以前在网上找的例子: 这个自定义如果继承的Viewpager是低版本的,那么是没问题的. 但是如果你编译时用是高版本的