2

我有一个带有 HScroll 和 VScroll 的 TableLayout,所以我可以向各个方向滚动。对于这个可滚动的布局,我使用了:Scrollview vertical and Horizo​​ntal in android。这使用了一个 onTouchEvent。

我的 TableLayout 中有带有 onClickListener 的项目。

当我在表格中滚动并使用 onClickListener 触摸项目时,滚动不起作用。当我单击该项目时,onClickListener 工作正常。但我也想在使用移动手势时滚动这些项目。

如何解决 onTouchEvent 和 onClickListener 之间的冲突?

这是我的 onTouchEvent:

@Override
public boolean onTouchEvent(MotionEvent event) {

    switch (event.getAction()) {

        case MotionEvent.ACTION_DOWN:
            if(true) {
                mx = event.getX();
                my = event.getY();
            }
            break;
        case MotionEvent.ACTION_MOVE:
            if(true) {
                curX = event.getX();
                curY = event.getY();
                vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                mx = curX;
                my = curY;
            }
            break;
        case MotionEvent.ACTION_UP:
            if(true) {
                curX = event.getX();
                curY = event.getY();
                vScroll.scrollBy((int) (mx - curX), (int) (my - curY));
                hScroll.scrollBy((int) (mx - curX), (int) (my - curY));
            }
            break;
    }

    return true;
}
4

1 回答 1

0

尝试简单地从 onTouchEvent 方法返回 false ,这样您就可以指示 android 系统您没有使用该事件并且它应该继续通过它...

于 2013-08-14T19:52:41.287 回答