【问题标题】:Table - Conflict onTouchEvent and OnClickListener表 - onTouchEvent 和 OnClickListener 冲突
【发布时间】:2013-05-04 20:49:21
【问题描述】:

我有一个带有 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;
}

【问题讨论】:

    标签: android scroll onclicklistener touch-event android-tablelayout


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-10-13
      • 2018-04-02
      • 2019-05-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-22
      相关资源
      最近更新 更多