我用ImageView
. 它在一个ScrollView
.
它可以在没有垂直运动的情况下工作,ScrollView
但在内部ScrollView
不会接收TouchEvents
到垂直运动。
如何阻止ScrollView
阻止触摸事件?
我用ImageView
. 它在一个ScrollView
.
它可以在没有垂直运动的情况下工作,ScrollView
但在内部ScrollView
不会接收TouchEvents
到垂直运动。
如何阻止ScrollView
阻止触摸事件?
您将需要根据需要打开和关闭它..
获取父母()。requestDisallowInterceptTouchEvent (true)。
我不确定为什么你在滚动视图中有操纵杆,操纵杆是否也应该随着视图滚动?如果这是预期的,那么上面的路线将是最好的解决方案。如果它不应该随着视图滚动,我会帮助您制定一个更好的方法,将操纵杆包含在您的视图中。
我在这里找到了解决方案。
我创建了一个自定义 ScrollView 类,它有一个布尔值指示它是否被锁定。onInterceptTouchEvent 方法被覆盖:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (!mScrollable) return false;
return super.onInterceptTouchEvent(ev);
}
当操纵杆被触摸时(ACTION_DOWN),自定义的 ScrollView 被锁定。在 ATCTION_UP 事件中,它被解锁。
简单的答案在这里: https ://stackoverflow.com/a/34436589/3818437
通过使用声明您的 ScrollView 不可点击/可聚焦
android:clickable="false" and android:focusable="false"
或者
v.setClickable(false) and v.setFocusable(false)
.
现在应该将点击事件分派给 ScrollView 的父级。