Android View 扩大点击区域

    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,设置多个时只有最后设置的生效。

你可能感兴趣的:(开发分享,简单问题,android)