Android-ZoomableImageView和DraggableParentView发生冲突

时间:2018-11-22 07:50:55

标签: android ontouchlistener android-touch-event

我在可拖动布局中使用了可缩放图像视图。我想让它们正常工作。当前,当我尝试使用onViewEvent时(如果imageView(子级)),当检测到1个以上的手指时,则意味着pointerCount大于1。但是问题是,当我在imageView上设置onTouchListener时,它被称为父级的efore onTouch视图,所以我可以为false / true以启用/禁用父级的触摸事件,这很好。但是imageView不会缩放,因为onTouch方法没有super.onTouch方法,因此该方法被覆盖,并且缩放功能停止。另一方面,如果我对Imageview做一个自定义类并重写onTouchEvent,因为它具有超级方法。然后,该方法都不会调用父方法,onTouch也不会在父方法中调用。我该如何解决这个问题?还是处理这种情况的更好方法是什么?

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;
            }
        });

0 个答案:

没有答案