修改代码如下、
public class NearestTouchFrame extends FrameLayout { private final ArrayList<View> mClickableChildren = new ArrayList<>(); private final boolean mIsActive; private final int[] mTmpInt = new int[2]; private final int[] mOffset = new int[2]; private View mTouchingChild; public NearestTouchFrame(Context context, AttributeSet attrs) { this(context, attrs, context.getResources().getConfiguration()); } @VisibleForTesting NearestTouchFrame(Context context, AttributeSet attrs, Configuration c) { super(context, attrs); mIsActive = c.smallestScreenWidthDp < 600;//这个地方做修改。可以去掉或者改变大小 } @Override public boolean onTouchEvent(MotionEvent event) { if (mIsActive) { if (event.getAction() == MotionEvent.ACTION_DOWN) { mTouchingChild = findNearestChild(event); } if (mTouchingChild != null) { event.offsetLocation(mTouchingChild.getWidth() / 2 - event.getX(), mTouchingChild.getHeight() / 2 - event.getY()); return mTouchingChild.getVisibility() == VISIBLE && mTouchingChild.dispatchTouchEvent(event); } } return super.onTouchEvent(event); }