【问题标题】:Use touch event for custom view without interfering with the user's touch event使用触摸事件进行自定义视图而不干扰用户的触摸事件
【发布时间】:2019-12-10 02:51:11
【问题描述】:

我为自定义视图创建了一个库。我使用OnTouchListener() 来处理自定义触摸事件,但我希望用户能够设置自己的OnTouchListener()。我该怎么办?!

【问题讨论】:

  • 不要在您的自定义View 上设置OnTouchListener。而是覆盖其onTouchEvent() 方法。

标签: android android-custom-view touch-event ontouchlistener custom-view


【解决方案1】:

您应该为自定义视图覆盖 onTouchEvent()

@Override
public boolean onTouchEvent(MotionEvent event) {
    Toast.makeText(this.getContext(), "Touched layout", Toast.LENGTH_SHORT).show();
    Log.d("TOUCH", "Touched layout");

    return super.onTouchEvent(event);
}

根据官方文档

onTouch() - 这将返回一个布尔值来指示您的侦听器是否使用此事件。重要的是这个事件可以有多个相互跟随的动作。因此,如果在接收到 down 操作事件时返回 false,则表明您尚未消费该事件,并且对该事件的后续操作也不感兴趣。因此,事件中的任何其他操作都不会调用您,例如手指手势或最终的向上操作事件。

【讨论】:

  • 很高兴听到这个消息
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多