我有一个扩展 Android ScrollView 的自定义 View 。直接子级是一个相对布局,它有可点击的子级。 我希望能够:
- 检测 ScrollView 上的 onScale Gesture(我将手动管理项目的比例)。
- 垂直滚动 ScrollView。
- 让这些子项保持可点击。
到目前为止我尝试过的是(伪代码):
public class CustomView extends ScrollView {
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
return super.onInterceptTouchEvent(ev) || mScaleDetector.onTouchEvent(ev);
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
return mScaleDetector.onTouchEvent(ev);
}
private class ScaleListener extends
ScaleGestureDetector.SimpleOnScaleGestureListener {
@Override
public boolean onScale(ScaleGestureDetector detector) {
// Handle the scale..
return true;
}
}
}
我还尝试了 onInterceptMethod 的不同配置,例如首先调用 super 并返回 mScaleDetector.onTouchEvent 等等。
我成功拦截了缩放或点击和滚动,但不是两者都拦截了。
谢谢, 丹尼尔
最佳答案
解决方案是使用:
@Override
public boolean dispatchTouchEvent(MotionEvent ev){
super.dispatchTouchEvent(ev);
return mScaleDetector.onTouchEvent(ev);
}
并且不覆盖 onInterceptTouchEvent
和 onTouchEvent
方法。
关于android - 如何以不阻止滚动和点击它的子项目的方式在 Android ScrollView 中启用缩放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14092140/