表 - 冲突onTouchEvent和OnClickListener

时间:2013-05-10 08:03:50

标签: android scroll onclicklistener ontouchevent android-tablelayout

我有一个带有HScroll和VScroll的TableLayout,所以我可以向各个方向滚动。对于我使用的这种可滚动布局:Scrollview vertical and horizontal 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;
}

1 个答案:

答案 0 :(得分:0)

尝试从onTouchEvent方法返回false,这样就表明你没有使用该事件的android系统,它应该继续通过它...