5

我用ImageView. 它在一个ScrollView.

它可以在没有垂直运动的情况下工作,ScrollView但在内部ScrollView不会接收TouchEvents到垂直运动。

如何阻止ScrollView阻止触摸事件?

4

3 回答 3

6

您将需要根据需要打开和关闭它..

获取父母()。requestDisallowInterceptTouchEvent (true)。

我不确定为什么你在滚动视图中有操纵杆,操纵杆是否也应该随着视图滚动?如果这是预期的,那么上面的路线将是最好的解决方案。如果它不应该随着视图滚动,我会帮助您制定一个更好的方法,将操纵杆包含在您的视图中。

于 2013-01-26T17:15:24.920 回答
6

我在这里找到了解决方案。

我创建了一个自定义 ScrollView 类,它有一个布尔值指示它是否被锁定。onInterceptTouchEvent 方法被覆盖:

@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
    if (!mScrollable) return false;
    return super.onInterceptTouchEvent(ev);
}

当操纵杆被触摸时(ACTION_DOWN),自定义的 ScrollView 被锁定。在 ATCTION_UP 事件中,它被解锁。

于 2013-02-16T22:46:00.640 回答
-1

简单的答案在这里: https ://stackoverflow.com/a/34436589/3818437

通过使用声明您的 ScrollView 不可点击/可聚焦

android:clickable="false" and android:focusable="false"

或者

v.setClickable(false) and v.setFocusable(false).

现在应该将点击事件分派给 ScrollView 的父级。

于 2015-12-23T13:24:20.260 回答