【问题标题】:Adding onClickListener inside ViewPager Makes the Swipe not Smooth Android在 ViewPager 中添加 onClickListener 使 Android 滑动不流畅
【发布时间】:2014-05-21 10:16:51
【问题描述】:

当我将此代码添加到我的 ViewPager 中时,ViewPager 的滑动在垂直滚动视图内是平滑的。

mPager.setOnTouchListener(new View.OnTouchListener() {
    @Override
        public boolean onTouch(View v, MotionEvent event) {
        v.getParent().requestDisallowInterceptTouchEvent(true);
        return false;
    }
});

但是当我将 onClickListener 添加到我的 ImageView [在添加到 Viewpager 的适配器的 Fragment 中找到] 时,我的 ViewPager 的滑动不正确。不正确,我需要有一个水平直线滑动才能转到另一个页面,这与以前不同 [当我没有添加 onClickListener 时],即使我进行对角滑动,viewpager 也会转到下一页。任何帮助深表感谢。谢谢。

【问题讨论】:

    标签: android android-viewpager


    【解决方案1】:

    我刚刚将 setontouchlistener 用于我的 imageview 并在那里设置条件。

    代码如下:

    imgCarousel.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View arg0, MotionEvent event) {
        switch (event.getAction()) {
        case MotionEvent.ACTION_DOWN: {
            pStart = new Point((int) event.getX(), (int) event.getY());
            break;
        }
    
        case MotionEvent.ACTION_UP: {               
            break;
        }
    
        case MotionEvent.ACTION_MOVE:{
            break;
        }
    
        case MotionEvent.ACTION_CANCEL:{
            Point pCancel = new Point((int) event.getX(), (int) event.getY());
    
            int difference = pStart.x - pCancel.x;
            if(difference > 10){
                mPager.setCurrentItem(HomeCarousel.currentPage+1);              
            }
        }
    
        default:
            break;
        }
        return true;
    }
    });
    

    【讨论】:

    • 你能发布一些代码来明确地展示你是如何做到的吗?
    【解决方案2】:

    我认为,这是因为 ImageView 使用 onClickListener 拦截 touchEvent。 您可以将 GestureOverlayView 与您的 ImageView 一起使用 - http://developer.android.com/reference/android/gesture/GestureOverlayView.html

    它可以处理触摸事件而不拦截它们。

    【讨论】:

    • 谢谢,请问怎么办?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-09
    • 2012-04-16
    • 2012-03-11
    相关资源
    最近更新 更多