【发布时间】: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:非常有帮助。但是这个功能对我来说有点烦...