在ScrollView Android中处理触摸事件

11

我想在Android 2.2中实现拖放功能。我已经为每个控件重写了onTouchListener。但是,所有我的控件都在ScrollView内。当ScrollView中显示所有控件时,拖放功能正常工作。但是,当屏幕上未显示所有控件且出现滚动时,我无法使用拖放功能。所有事件都传递给了ScrollView,只有ScrollView处理它们。控件没有收到触摸事件,因此我无法拖动我的控件。 有谁知道如何解决这个问题吗?我认为,ScrollView应该先处理自己的触摸事件,然后将此触摸事件传递给子控件。我该怎么做?还是有其他解决方案吗?

2个回答

23

使用mScrollView.requestDisallowInterceptTouchEvent(true);避免ScrollView处理触摸事件。同样,正如Ridcully所指出的那样,在onInterceptTouchEvent()中处理触摸事件。


2
非常感谢!mScrollView.requestDisallowInterceptTouchEvent(true);解决了我的问题。我不想实现自定义滚动视图,但我确信可以在没有自定义视图的情况下完成它。你的解决方案真的帮了我很多。但是每次处理我的控件的触摸事件时,我需要调用这个方法并将其设置为true。 - brave_warrior

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接