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

查看页面停止向特定方向滑动

郎恺
2023-03-14

如何阻止viewpager仅向一个方向滚动。例如,只允许向右滑动,而不允许向左滑动。我完全被卡住了,任何帮助都将不胜感激。要注意的是,我需要让它在Android 2.2版上工作,所以我使用ViewPager的兼容性库。

提前感谢

共有1个答案

华昕
2023-03-14

您必须创建自己的ViewPager,以扩展原始ViewPager并覆盖onTouchEvent方法

public class CustomViewPager extends ViewPager {

    float lastX = 0;

    boolean lockScroll = false;

    public CustomViewPager(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    public CustomViewPager(Context context) {
        super(context);
    }

    @Override
    public boolean onTouchEvent(MotionEvent ev) {

        switch (ev.getAction()) {
        case MotionEvent.ACTION_DOWN:
            lastX = ev.getX();
            lockScroll = false;
            return super.onTouchEvent(ev);
        case MotionEvent.ACTION_MOVE:

            if (lastX > ev.getX()) {
                lockScroll = false;
            } else {
                lockScroll = true;
            }

            lastX = ev.getX();
            break;
        }

        lastX = ev.getX();

        if(lockScroll) {
            return false;
        } else {
            return super.onTouchEvent(ev);
        }

    }



}
 类似资料:
  • 有很多关于如何在浏览器中阻止滑动的问题和解决方案。 示例:通过UI反馈动态控制ViewPager可以滚动的方向 然而,我只想阻止特定页面上的向前滑动(我有一个表格和注册按钮,采取下一页编程) 示例:第1页- 尝试扩展类ViewPager与方法onInterceptTouchEvent和onInterceptTouchEvent但这样做时,我不能让按钮工作,因为一切都被读取为MotionEvent.

  • 问题内容: 我正在Qt和C ++中开发一个Android应用程序。我的整个应用程序都是纵向的,但是当我播放视频时,我想将方向更改为横向,并且在视频结束后应该再次更改为纵向。 因此,问题是如何在Android的Qt / C ++应用程序中将屏幕设置为横向或纵向模式。 问题答案: 可以使用Java函数更改Android上的屏幕方向,因此您应该从应用中调用Java函数。要在Qt Android应用程序中

  • 我有一个扩展SimpleOnPageChangeListener的类,在我的onPageScrollStateChanged方法中,我希望能够确定用户是否通过ViewPager向前或向后滑动。一、 e.是否从左向右或从右向左滑动。 我在谷歌上搜索了很多,但找不到任何相关信息。我原以为onPageScrollStateChanged方法会提供一个参数,说明刷卡的方向,但事实并非如此。 有人有什么想法

  • 我想在查看页面2中禁用从右向左滑动。我基本上有一个viewpager2元素,在导航抽屉中有两页。我希望我的第二页仅在单击第一页中的某个元素时显示(从第一页向右向左滑动不应打开第二页),而当我在第二页时,viewpager2滑动(从左向右滑动)应像在viewpager中一样滑动。 我尝试过扩展类并覆盖触摸事件,但不幸的是它是最终类,因此我无法扩展它。 其次,我尝试使用将userinputened设置

  • 问题内容: 我想做的是,当他们最初使用此方法时,进入免责声明页面,然后在此之后的任何时候都转到另一个页面。我当前的方法只是带给我免责声明页面。让我知道是否需要进一步解释…谢谢!!! 基本上,我需要在第一次点击此方法时添加一个If来转到页面,我想是这样的: 问题答案: 当该人第一次点击该页面时,在会话层上抛出一个标志。然后,无论何时有人进入页面,您都可以检查它是否存在,并相应地重定向他们。唯一的问题

  • 页面重定向在Web应用程序有很多原因是必要的。您可能希望将用户重定向到另一个页面,当一个特定的动作发生,或者有错误的情况下。例如,当用户登录网站,他经常被重定向到他的主页或个人的仪表板。在Django中,定向使用“redirect”的方法来实现。 在“redirect”方法需要作为参数:URL要被重定向到的字符串的视图名字。 myapp/views 到现在为止如下所示 − 让我们修改hello,以