我用ImageView
制作了一个“操纵杆”。它在ScrollView
内。
它在没有ScrollView
的情况下有效,但在ScrollView
内部却没有收到TouchEvents
的垂直移动。
如何阻止ScrollView
阻止触摸事件?
答案 0 :(得分:6)
我找到了解决方案here。
我创建了一个自定义ScrollView类,它有一个布尔值来指示它是否被锁定。 重写onInterceptTouchEvent方法:
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (!mScrollable) return false;
return super.onInterceptTouchEvent(ev);
}
触摸操纵杆(ACTION_DOWN)时,自定义ScrollView被锁定。在ATCTION_UP事件中它被解锁。
答案 1 :(得分:4)
您需要根据需要打开和关闭此功能..
的getParent()。requestDisallowInterceptTouchEvent(真)。
我不确定为什么你在滚动视图中有操纵杆,操纵杆是否也应该与视图一起滚动?如果这是预期的,上面的路线将是最好的解决方案。如果它不应该与视图一起滚动,我会帮助你找到一种更好的方法,在你的视图中包含操纵杆。 p>
答案 2 :(得分:-1)
简单的答案在这里: https://stackoverflow.com/a/34436589/3818437
使用
声明您的ScrollView无法点击/可聚焦android:clickable="false" and android:focusable="false"
或
v.setClickable(false) and v.setFocusable(false)
。
现在应该将点击事件发送到ScrollView的父级。