【问题标题】:ontouchlistener's rangeontouchlistener 的范围
【发布时间】:2011-05-16 13:21:13
【问题描述】:

我有两个视图(一个来自 SurfaceView 另一个来自 ImageView),每个都封装在一个框架布局中,每个视图都实现了一个 ontouchlistener,它被设置为视图本身的 ontouchlistener。这两个视图(布局)在屏幕上没有交集。

但是,我无法让这两个听众一起工作。

例如,如果视图 A(监听器 A)上有一个 ACTION_DOWN,那么监听器 B 将不会做出反应(即使以下动作在视图 B 上也不会分派给 B 的事件),只有监听器 A 会做出反应,直到没有触摸事件。

也就是说,即使监听器A只设置为视图A的ontouchlistener,它会处理整个屏幕上的每个事件,而其他监听器被禁止。

这对我来说很奇怪,有什么解释吗? 屏幕上可以同时存在两个 ontouchlistener 吗?

【问题讨论】:

  • 我不确定我是否遇到了问题,但是在 ACTION_DOWN 之后,跟随事件(如 ACTION_MOVE)直到 ACTION_UP 或 ACTION_CANCEL 被直接转发到该视图,这就是 Android 的工作方式。见here
  • @bigstones:非常有帮助。但是这个功能对我来说有点烦...

标签: android ontouchlistener


【解决方案1】:

当然可以,就像两个按钮有自己的监听器一样。尝试为您的视图设置监听器:

frameLayout.setOnClickListener();
imageView.setOnClickListener();

这样他们应该只对到达他们自己的听众的事件做出反应。希望这会有所帮助。

【讨论】:

    【解决方案2】:

    android 按照here 的描述工作

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-06
      • 1970-01-01
      • 2022-11-12
      相关资源
      最近更新 更多