问题
在Android
开发过程中,有时在一个页面中有很多按钮,点击按钮会跳转到不同的页面,但是有时同时点击两个以上按钮时,会导致同时打开了多个页面,这时该怎么办呢?
解决思路
控制多点触控,不需要多点触控的界面设置禁用多点触控,保证一次点击事件只传递到一个View
。
- 设置
windowEnableSplitTouch
(控制Window
之间的) - 设置
splitMotionEvents
(控制ViewGroup
中的View
)
1. 通过设置windowEnableSplitTouch
在values/styles.xml
中的theme
中设置, 可将theme
设置给Application
或者Activity
,但是这个属性控制的是两个Window
之间的(啥?你不知道啥是Window
?找度娘或古哥),并不是一个Window
中的View
之间的(也就是你在一个Activity
上设置了这个属性,在这个Activity
内是没有效果的)。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
......
<item name="android:windowEnableSplitTouch">false</item>
</style>
Manifest
中
<application
......
android:theme="@style/AppTheme">
</application>
或者
<activity android:name=".XXXActivity" android:theme="@style/AppTheme"/>
或者
<application
......
android:theme="@style/AppTheme">
<activity android:name=".XXXActivity" android:theme="@style/AppTheme"/>
</application>
2. 通过设置splitMotionEvents
在布局中设置splitMotionEvents
属性,可以有效防止当前ViewGroup
内的View
之间的多点触控。把这个属性加到根View
上,就可以防止Activity
内的多点击了.
<LinearLayout
...
android:splitMotionEvents="false"
>
</LinearLayout>
参考链接
windowEnableSplitTouch
splitMotionEvents
广告:
我使用的装备:程序员必备 | 不伤关节 | 手感好 | 静电容 | Plum键盘|Niz键盘 戳我