Android ScrollView截取点击,不应该这样做

时间:2013-05-15 11:34:04

标签: android click scrollview ontouchevent

我在scrollview中有一个onClickListener视图。视图应对点击做出反应,但是scrollview几乎将所有触摸解释为ACTION_MOVE并拦截触摸事件,因此我无法单击视图。

我已按如下方式修改了我的scrollview(因为它位于viewpager中,需要禁用滚动viewpager)

@Override
public boolean onInterceptTouchEvent(MotionEvent p_event) {
    if (p_event.getAction() == MotionEvent.ACTION_MOVE) {
        return true;
    }
    return super.onInterceptTouchEvent(p_event);
}

@Override
public boolean onTouchEvent(MotionEvent p_event) {
    if (p_event.getAction() == MotionEvent.ACTION_MOVE && getParent() != null) {
        getParent().requestDisallowInterceptTouchEvent(true);
    }
    return super.onTouchEvent(p_event);
}

如何更改ScrollView的灵敏度,以便不将最微小的动作注册为ACTION_MOVE并将触摸事件传递给其子女?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

没关系,我修好了! 第一部分是没有必要的,如果您修改代码如下,它可以正常工作:

@Override
public boolean onInterceptTouchEvent(MotionEvent p_event) {
    /*if (p_event.getAction() == MotionEvent.ACTION_MOVE) {
        return true;
    }*/
    return super.onInterceptTouchEvent(p_event);
}

@Override
public boolean onTouchEvent(MotionEvent p_event) {
    if (p_event.getAction() == MotionEvent.ACTION_MOVE && getParent() != null) {
        getParent().requestDisallowInterceptTouchEvent(true);
    }
    return super.onTouchEvent(p_event);
}
相关问题