package com.yidianling.home.ui.scrollView; import android.content.Context; import androidx.core.widget.NestedScrollView; import android.util.AttributeSet; import android.view.MotionEvent; /** * 用于子类防止父类拦截子类的事件 */ public class DisInterceptNestedScrollView extends NestedScrollView { public DisInterceptNestedScrollView(Context context) { super(context); requestDisallowInterceptTouchEvent(true); } public DisInterceptNestedScrollView(Context context, AttributeSet attrs) { super(context, attrs); requestDisallowInterceptTouchEvent(true); } public DisInterceptNestedScrollView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); requestDisallowInterceptTouchEvent(true); } public boolean dispatchTouchEvent(MotionEvent ev) { getParent().requestDisallowInterceptTouchEvent(true); return super.dispatchTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_MOVE: requestDisallowInterceptTouchEvent(true); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: requestDisallowInterceptTouchEvent(false); break; } return super.onTouchEvent(event); } }