在Imageview内部禁用父滚动在recycleTle上调用onTouch

时间:2018-04-19 06:28:32

标签: android android-recyclerview android-custom-view android-nestedscrollview

我在父卷轴视图中有多个recyclerview

在First Horizo​​ntal recyclerview中有一个imageview,On touch事件中有一个名为Image放大镜的类,

我想要做的是,当调用Imageview onTouch事件时,我想禁用父scollview。

我已尝试过自定义linearlayout并尝试嵌套滚动启用false,但它没有用,因为父scrollview ontouch和imageview onTouch以不同方式触发,两者同时发生碰撞。

这是我的自定义类代码:

public class ImageMagnifier extends ImageView {
private PointF zoomPos;
private boolean zooming = false;
private Matrix matrix;
private Paint paint;
private Bitmap bitmap;
private BitmapShader shader;
private int sizeOfMagnifier = 200;

 public ImageMagnifier(Context context) {
    super(context);
    init();
}

public ImageMagnifier(Context context, AttributeSet attrs, int defStyleAttr) 
{
    super(context, attrs, defStyleAttr);
    init();
}

public ImageMagnifier(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

private void init() {
    zoomPos = new PointF(0, 0);
    matrix = new Matrix();
    paint = new Paint();

}

@Override
public boolean onTouchEvent(MotionEvent event) {
    int action = event.getAction();
    zoomPos.x = event.getX();
    zoomPos.y = event.getY();

        switch (action) {
            case MotionEvent.ACTION_DOWN:
            case MotionEvent.ACTION_MOVE:
                zooming = true;
                this.invalidate();
                break;
            case MotionEvent.ACTION_UP:
                break;
            case MotionEvent.ACTION_CANCEL:
                zooming = false;
                this.invalidate();
                break;

            default:
                break;
        }
    return true;
}

 @Override
protected void onDraw(Canvas canvas) {....} 
}

我从适配器xml调用它:

<kalpcorporate.zimpia.all_library.ImageMagnifier
    android:id="@+id/img_productMangnifier"
    android:layout_width="match_parent"
    android:layout_height="@dimen/_200sdp"
    android:clickable="true"
    android:src="@drawable/main_product_pic_1" />

提前感谢您的帮助。

编辑:我甚至尝试过recycleler_view_product.addOnItemTouchListener,但它还没有打电话。

0 个答案:

没有答案