private fun toSetBigClickArea(view:View){
var delegateArea = Rect();
var delegate = view
view.post {
delegate.getHitRect(delegateArea)
delegateArea.top -= 80
delegateArea.bottom += 80
delegateArea.left -= 80
delegateArea.right += 80
var expandedArea = TouchDelegate(delegateArea, delegate)
var parent = delegate.parent as? View
parent?.touchDelegate = expandedArea
}
}
主要是通过 delegate 扩大。注意要在post 里面修改。因为view 没有测量完成。这时候获取不到它的rect 。这里扩大的区域超过父容器的部分是不会生效的。
一个Parent只能设置一个View的TouchDelegate,设置多个时只有最后设置的生效。