在项目的需求下要求checkbox 的点击范围扩大,但是图标的大小又不能受影响,使用padding无效时,添加如下方法,然后调用即可
Checkbox cbox = (Checkbox)findViewById(R.id.cb_sex);
expandClickArea(cbox,100);//去看看结果吧
//expandClickArea(cbox,ScreenUtil.dpToPx(20f));
/**
* 扩大指定View的点击范围,类似于padding的效果
* @param view view
* @param extraPadding 单位是px
*/
private void expandClickArea(final View view, final int extraPadding) {
final View parent = (View) view.getParent();
parent.post(new Runnable() {
@Override
public void run() {
Rect rect = new Rect();
view.getHitRect(rect);
rect.top -= extraPadding;
rect.left -= extraPadding;
rect.right += extraPadding;
rect.bottom += extraPadding;
parent.setTouchDelegate(new TouchDelegate(rect,view));
}
});
}