栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

检测可点击项目的猛扑手势

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

检测可点击项目的猛扑手势

我实现这一目标的一种方法是重写以下方法:

public boolean onInterceptTouchEvent(MotionEvent event){    super.onInterceptTouchEvent(event);    ...

您可以在布局容器中覆盖此方法(例如,ViewGroup或按住按钮的任何对象),然后继续

false
从该方法返回以“拦截”子项
View
(例如,按钮)消耗的触摸事件。然后,在该重写的方法中,您可以使用
MotionEvent
s
调用手势检测器对象。该方法还“看到”以
ViewGroup
自身为目标的事件,这意味着-如果我没记错的话-您 只需
要从该方法中调用手势检测器,这样做,手势检测器将“查看” 所有内容
事件,无论它们是否在按钮上方。因此,如果您从一个按钮开始拖动手指,然后在布局背景上的某个点结束拖动手指,则手势检测器应该可以看到整个滑动。您不需要向手势检测器提供来自布局本身的事件,
onTouchEvent()
因为它已经看到了它们。


第二种方式:

我只是查看了我在其中使用过此项目的项目,并意识到我切换到了另一种方式。我实际上所做的是我设计了所有的子对象

View
,以便父代
Activity
(或包含
ViewGroup
)可以向所有这些子对象注册相同的手势检测器对象
View
(我的每个特殊对象
View
都有一个称为的方法
registerGestureDetector()
)。然后,在我的孩子
View
s中被覆盖的“
onTouchEvent()”中,将
MotionEvent
s
传递给已向其注册的手势检测器
View
。换句话说,父级
ViewGroup
布局和所有子级
View
仅共享同一手势检测器。

我意识到这听起来有点麻烦,并且考虑到可以使用来完成

onInterceptTouchEvent()
,但没有必要,但是我的应用程序处理了一些非常复杂的规则,涉及到我
View
需要如何响应触摸事件和手势,因此我可以应用一些规则。我需要针对我的应用程序的其他逻辑。但是,我在这两种方法中都达到了相同的基本目标:
MotionEvent
将以
View
s为目标的s
引导到同一手势检测器对象。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/595437.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号