【问题标题】:onTouchListener not accepting layoutonTouchListener 不接受布局
【发布时间】:2018-10-18 10:14:17
【问题描述】:

代码

private RelativeLayout mToolbar;
mToolbar = (RelativeLayout) myview.findViewById(R.id.toolbar);

mToolbar.setOnTouchListener(new View.OnTouchListener() {
        WindowManager.LayoutParams updatedParameters = finalParameters;
        double x;
        double y;
        double pressedX;
        double pressedY;

        @Override
        public boolean onTouch(View v, MotionEvent event) {

            switch (event.getAction()) {
                case MotionEvent.ACTION_DOWN:

                    x = updatedParameters.x;
                    y = updatedParameters.y;

                    pressedX = event.getRawX();
                    pressedY = event.getRawY();

                    break;

                case MotionEvent.ACTION_MOVE:
                    updatedParameters.x = (int) (x + (event.getRawX() - pressedX));
                    updatedParameters.y = (int) (y + (event.getRawY() - pressedY));

                    wm.updateViewLayout(myview, updatedParameters);

                default:
                    break;
            }

            return false;
        }
    });

我有一个服务,上面的代码可以在屏幕中移动该服务......之前我必须触摸一个按钮并移动它。我现在将它切换到布局,它不再工作了 为什么这不起作用?我将相同的代码与按钮一起使用,并且效果很好。 onTouch 是否总是必须是按钮,或者也可以是布局或文本视图?

【问题讨论】:

  • 当您的代码使用 onTouch 侦听器时,您的问题标题显示 onClick 侦听器?还有什么不适用于上面的代码
  • 代码不执行...根据代码我应该可以移动布局

标签: java android xml android-studio android-layout


【解决方案1】:

你应该从 onTouch 方法返回true

如果你在得到MotionEvent.ACTION_DOWN时返回false, Android 假定您对处理触摸事件不感兴趣,并且根本不会将任何其他运动事件传递给您(包括您所期望的 MotionEvent.ACTION_MOVE

【讨论】:

    【解决方案2】:

    需要更新onTouch方法的返回部分

      public boolean onTouch(View v, MotionEvent event) {
        // if return is true means touch enabled
        // If return is false means touch is disabled
        return true;
        }
    

    【讨论】:

      猜你喜欢
      • 2012-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-25
      • 1970-01-01
      • 2021-11-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多