【问题标题】:Viewpage stop swiping in a certain direction查看页面停止向某个方向滑动
【发布时间】:2012-09-01 03:09:32
【问题描述】:

如何阻止 viewpager 仅向一个方向滚动。例如,只允许向右滑动,但不允许向左滑动。我完全被卡住了,任何帮助将不胜感激。请注意,我需要让它适用于 Android 2.2 版,因此我使用 ViewPager 的兼容性库。

提前致谢

【问题讨论】:

    标签: android android-viewpager


    【解决方案1】:

    您必须制作自己的 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);
            }
    
        }
    
    
    
    }
    

    【讨论】:

    • 嗨,阿里 - 不幸的是,这不起作用。我什至尝试过 onTouchEvent 事件,但很遗憾,没有乐趣。
    • 另一个技巧,当你滚动到下一个视图时,删除第一个。我会在几分钟后更新。
    • 超级越野车,特别是如果有偏移量。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多