Android改变按钮的点击区域

假设我们要扩大Button的点击区域

一、你可以使用如下方式



    

然后在 FrameLayout 上设置 OnClickListener,

但是,点击的时候却发现 Button 是没有点击效果的,怎么办呢?

我们可以在 Button 上添加  android:duplicateParentState="true"  

Android改变按钮的点击区域_第1张图片 

二,我们可以使用 TouchDelegate

要使用 TouchDelegate

首先我们需要获取 Button 原来的点击区域,使用 View.getHitRect(Rect out) 即可获取 Button 的点击区域

然后我们扩大点击区域,并创建  TouchDelegate,如下将button点击区域扩大50px

testClickArea.post {
    val touchableArea = Rect()
    testClickButton.getHitRect(touchableArea)
    touchableArea.top -= 50
    touchableArea.bottom += 50
    touchableArea.left -= 50
    touchableArea.right += 50
    testClickArea.touchDelegate = TouchDelegate(touchableArea, testClickButton)
}

 

 

 

你可能感兴趣的:(Android,Android,button,click)