Split touch events
Previously, only a single view could accept touch events at one time. Android 3.0 adds support for splitting touch events across views and even windows, so different views can accept simultaneous touch events.
Split touch events is enabled by default when an application targets Android 3.0. That is, when the application has set either the android:minSdkVersion or android:targetSdkVersion attribute's value to "11".
However, the following properties allow you to disable split touch events across views inside specific view groups and across windows.
- The android:splitMotionEvents attribute for view groups allows you to disable split touch events that occur between child views in a layout. For example:
<LinearLayout android:splitMotionEvents="false" ... > ... </LinearLayout>
This way, child views in the linear layout cannot split touch events—only one view can receive touch events at a time.
- The android:windowEnableSplitTouch style property allows you to disable split touch events across windows, by applying it to a theme for the activity or entire application. For example:
<style name="NoSplitMotionEvents" parent="android:Theme.Holo"> <item name="android:windowEnableSplitTouch">false</item> ... </style>
When this theme is applied to an <activity> or <application>, only touch events within the current activity window are accepted. For example, by disabling split touch events across windows, the system bar cannot receive touch events at the same time as the activity. This does not affect whether views inside the activity can split touch events—by default, the activity can still split touch events across views.
For more information about creating a theme, read Applying Styles and Themes.
在Android中可以通过对一个Layout来设置SplintMotionEvents属性来决定同一个layout的子view是否可以响应同时点击。如果为false,表明不能响应同时点击事件,如果为true则代表可以。设置为true,在同时点击这个layout的两个子View,可以看到同时处于Focus状态。