多个视图OnTouch事件

Chr*_*ian 10 android

我们正在开发一个应用程序,我们需要同时从多个视图中捕获MotionEvent.当我们尝试这样做时,Android只会将事件调度到第一个触摸的视图,并且当同时触摸另一个视图时,它仅在第一个视图上给出一个ACTION_POINTER_DOWN,即使指针坐标超出其边界而在其他视图内部也是如此.

我们有什么方法可以将事件分派到每个触摸的视图(在单独的OnTouch调用中)?

我们认为从父视图中截取触摸事件然后手动将它们分派到每个视图可能会起作用,但即使这样做,也不适合我们想要实现的目标.有没有更简单的方法?

viv*_*oup 10

至少Android 3.0增加了对在多个视图之间拆分触摸事件的支持.

默认情况下,当AndroidManifest <uses-sdk>定义android:minSdkVersion="11"或时,会启用拆分触摸事件android:targetSdkVersion="11".有关解释请参阅android:splitMotionEventsandroid:windowEnableSplitTouch


Ale*_*lov 6

触摸事件首先由当前焦点的视图捕获.如果您触摸了1个视图并且正在使用"已消耗"事件并且正在使用它,则无论您在何处单击,都会将任何其他事件分派到此视图.

如果你从touchListener返回false(因此说该事件没有被消耗),它将被委托给其他视图,但是在另一个单独的点击中,新事件将被分派到其他视图.

http://www.zdnet.com/blog/burnette/how-to-use-multi-touch-in-android-2-part-3-understanding-touch-events/1775

http://developer.android.com/guide/topics/ui/ui-events.html