Вы можете запретить прокрутку ScrollView всякий раз, когда ваш DrawView получает событие касания. Для этого вам нужно создать пользовательские вызовы ScrollView, как показано ниже: [Оригинальный фрагмент кода]
public class MyScrollView extends ScrollView {
private boolean enableScrolling = true;
public MyScrollView(Context context) {
super(context);
}
public MyScrollView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
}
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
if (scrollingEnabled()) {
return super.onInterceptTouchEvent(ev);
} else {
return false;
}
}
@Override
public boolean onTouchEvent(MotionEvent ev) {
if (scrollingEnabled()) {
return super.onTouchEvent(ev);
} else {
return false;
}
}
private boolean scrollingEnabled(){
return enableScrolling;
}
public void setScrolling(boolean enableScrolling) {
this.enableScrolling = enableScrolling;
}
}
И вы можете позвонить scrollView.setScrolling(true/false)
согласно вашему требованию.