/**
* 拦截点击事件
* @param ev
* @return
*/overridefundispatchTouchEvent(ev: MotionEvent): Boolean {if(ev.action == MotionEvent.ACTION_DOWN){// 获取点击坐标val x = ev.rawX.toInt()val y = ev.rawY.toInt()if(AppUtils.isTouchPointInView(view, x, y)){// 不再分发事件returntrue}}returnsuper.dispatchTouchEvent(ev)}
2、判断位置是否在控件内
/**
* (x,y)是否在view的区域内
*
* @param view
* @param x
* @param y
* @return
*/funisTouchPointInView(view: View, x: Int, y: Int): Boolean {val location =IntArray(2)
view.getLocationOnScreen(location)val left = location[0]val top = location[1]val right = left + view.measuredWidth
val bottom = top + view.measuredHeight
return y in top..bottom && x >= left && x <= right
}