3

我在滚动视图中有一个带有 onClickListener 的视图。视图应该对点击做出反应,但滚动视图将几乎所有的触摸解释为 ACTION_MOVE 并拦截触摸事件,所以我不能点击视图。

我已按如下方式修改了我的滚动视图(因为它位于 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 并将触摸事件传递给其子级?

感谢您的帮助!

4

1 回答 1

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);
}
于 2013-05-15T11:37:15.793 回答