Я использую масштабируемое изображение внутри перетаскиваемого макета.Я хочу заставить их работать без каких-либо конфликтов.В настоящее время, когда я пытаюсь использовать onTouchEvent, если imageView (child), когда обнаружено более 1 fingures, означает, что pointerCount больше 1. Но проблема заключается в том, что когда я устанавливаю onTouchListener для imageView, то он называется efore onTouch родительскогопосмотреть, так что я могу false / true, чтобы включить / отключить сенсорное событие для родителя, что хорошо.Но imageView не масштабируется, потому что метод onTouch не имеет метода super.onTouch, поэтому метод переопределяется и функциональность масштабирования прекращается.С другой стороны, если я создаю собственный класс ImageR и переопределяю onTouchEvent, так как в нем есть супер метод.Тогда ни тот метод не вызывает, ни onTouch не вызывает в parent.Как я могу решить эту проблему?или как лучше справиться с этим сценарием?
CustomPhotoView:
public class CustomPhotoView extends PhotoView {
public CustomPhotoView(Context context) {
super(context);
}
public CustomPhotoView(Context context, AttributeSet attr) {
super(context, attr);
}
public CustomPhotoView(Context context, AttributeSet attr, int defStyle) {
super(context, attr, defStyle);
}
public CustomPhotoView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return event.getPointerCount() > 1 && super.onTouchEvent(event);
}
}
Если я использую touchListener, как описано ниже, onTouch вызывает, но не может использовать супер метод для выполнения функциональности использования:
mViewDataBinding.postImg.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return event.getPointerCount() > 1;
}
});