即使触摸坐标不再位于小部件内,我如何维护小部件处理的ontouch事件,在android中

对不起复杂的问题让我解释一下.
我已经创建了一个处理一些ontouch事件的自定义小部件.我想要做的是当我在该自定义小部件(onDown)上启动触摸事件时,我希望该小部件继续处理这些事件,即使绝对协调不在该小部件中.

我有一个scrollview,并在其上(在scrollview内)一个处理(左 – 右)滚动的小部件.但是如果我垂直移动手指,则触摸事件将由scollview消耗和处理.如果我在自定义小部件中启动ontouchEvent,有没有办法绕过scrollview来处理触摸事件,或者更好地强制自定义小部件继续处理touchEvent?

更新我遇到了http://groups.google.com/group/android-framework/browse_thread/thread/2cdd4269dfb2772e?pli=1.

如果自定义窗口小部件不在像“ScrollView”这样的滚动视图中,那么这适用于我的情况.试图解决“在滚动对象内的Beeing.如何不将这些在touchevents上发送给父级?返回true并不能解决问题

解决方法:

在你的小部件的onTouch处理程序中(例如在ACTION_MOVE期间),调用parent.requestDisallowInterceptTouchEvent(true).该方法基本上是要求父级(在你的情况下是scrollview)及其祖先不拦截触摸事件.

上一篇:android – onTouchEvent()的Activity会触发3次?


下一篇:Android事件分发机制三:事件分发工作流程