如果父ScrollView无法处理它,请执行onTouch

时间:2015-12-21 11:44:40

标签: android scrollview touch-event motionevent

好的,这可能是微不足道的,但我无法弄明白该怎么做。

我们有一个容器滚动视图,一个ScrollView的子类,这个视图有一个子视图(以及其他视图)应该监听触摸事件。

特别是,我想做的是:

    点击了
  • childViewMotionEvent.ACTION_DOWN来了;
  • 检查该事件是否为滚动事件,即检查该动作是否会在scrollView开始滚动;
  • 如果是的话,让scrollView处理它,什么都不做;如果没有,即如果点击childView没有开始滚动到父视图,做某事

有什么想法吗?

伪编码,应该是这样的:

ScrollView scrollView = ...;
View childView = scrollView.findViewById(...):

childView.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        int action = event.getAction();
        if (action == MotionEvent.ACTION_DOWN) {

            if (scrollView.onTouchEvent(event)) {
                // event was handled by the view
                return false;
            } else {
                // do something
                return true;
            }
        }
        return false;
    }
});

正如您所看到的,我对运动事件的运作方式并不了解。

0 个答案:

没有答案