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

StackOverflow https://stackoverflow.com/questions/6803959

抱歉,我解释了一个复杂的问题。我创建了一个自定义小部件,可以处理一些OnTouch事件。我想做的是,当我在该自定义小部件(OnDown)上启动触摸事件时,我希望该小部件继续处理这些事件,即使绝对协调不在该小部件中。

我有一个scrollview,最重要的是(在滚动浏览中)一个可以处理(左 - 右)滚动的小部件。但是,如果我垂直移动手指,则会被Scollview消耗和处理。如果有一种方法可以锻造scrollview来处理触摸事件,或者更好地强制定制小部件以继续处理触摸,如果我启动自定义小部件内部的OnTouchEvent?

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

在我的情况下,如果自定义小部件不在滚动视图中,则可以使用“ scrollview”。试图解决“滚动对象内的蜜蜂”。如何不将其发送给父母?返回true不能解决问题

有帮助吗?

解决方案

在您的小部件的OnTouch处理程序中(例如在Action_Move期间),请致电 parent.requestdislowhintercepttouchevent(true). 。该方法基本上是在询问父母(在您的情况下为scrollview)及其祖先不要拦截触摸事件。

其他提示

您将需要实现一个特殊的ScrollView子类,该类别可以在需要时告诉其禁用滚动(因此,在运动后不会开始滚动并从小部件中获取事件)。自定义卷轴可以覆盖以下方法:

http://developer.android.com/reference/android/widget/scrollview.html#onintercepttouchtouchevent(android.view.motionevent)

当您不希望基类消耗卷轴触摸事件时,请在此处返回false,而不是调用基本实现。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top