首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在活动中禁用或阻止多点触控

在活动中禁用或阻止多点触控
EN

Stack Overflow用户
提问于 2011-12-20 12:55:38
回答 9查看 37.2K关注 0票数 40

我在用户想要快速触摸的活动上有几个视图,并且我使用TouchListener和处理MotionEvent.ACTION_DOWN来捕捉这些触摸。但是,如果用户使用两只手,则很可能在用户提起上一个手指之前,下一个视图将被“触摸”。在这种情况下,将为第一个视图触发MotionEvent.ACTION_MOVE,而不是为第二个视图触发所需的MotionEvent.ACTION_DOWN

有什么方法可以解决或防止这种行为吗?我尝试使用MotionEvent.ACTION_UP分派一个新事件,并删除事件侦听器,但似乎都不起作用。

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-01-04 23:56:53

解决这种情况的最好方法是使用ViewGroup并实现onInterceptTouchEvent方法,以便在您认为合适的时候手动路由触摸事件。

这里最初回答了这个问题:Android multitouch! hack anyone?

实现这个解决方案的代码(可以在上面问题的答案的注释部分找到)可以在这里找到:http://pastebin.com/hiE1aTCw

票数 4
EN

Stack Overflow用户

发布于 2014-03-27 02:15:54

我发现在整个应用程序中强制单点触摸的最简单方法是使用主题进行设置:

代码语言:javascript
复制
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:windowEnableSplitTouch">false</item>
    <item name="android:splitMotionEvents">false</item>
</style>

清单:

代码语言:javascript
复制
  <application
        android:label="@string/app_name"
        android:theme="@style/MyTheme" >
票数 82
EN

Stack Overflow用户

发布于 2015-10-27 18:33:53

如果有人仍在寻找最佳解决方案,请将以下代码放入xml:

代码语言:javascript
复制
android:splitMotionEvents = false 
票数 25
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8570982

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档