Bootstrap

Android多点触控问题解决(windowEnableSplitTouch, splitMotionEvents)

问题

Android开发过程中,有时在一个页面中有很多按钮,点击按钮会跳转到不同的页面,但是有时同时点击两个以上按钮时,会导致同时打开了多个页面,这时该怎么办呢?

解决思路

控制多点触控,不需要多点触控的界面设置禁用多点触控,保证一次点击事件只传递到一个View

  1. 设置 windowEnableSplitTouch(控制Window之间的)
  2. 设置 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属性,可以有效防止当前ViewGroupView之间的多点触控。把这个属性加到根View上,就可以防止Activity内的多点击了.

<LinearLayout 
    ...
    android:splitMotionEvents="false"
    >

</LinearLayout>

参考链接

windowEnableSplitTouch
splitMotionEvents



广告:

我使用的装备:程序员必备 | 不伤关节 | 手感好 | 静电容 | Plum键盘|Niz键盘 戳我


;