扩大小按钮的事件点击范围

我们在平时的实战开发过程中经常会碰到这样的一些需求,我们要点击一个小按钮弹出一个DialogFragment或者点击之后跳转到另外一个界面上去,我们发现由于按钮太小了不容易点击,这样的体验非常不好,怎么办?

效果图

很多长人肯定会说给View加个Padding就行了嘛,是的这样可以解决问题,但是你有没有想过如果该View有背景图,结果你加了个Padding ,View的背景图变形了,这种情况下通过加Padding加大点击范围的方案就行不通了,如何破解?其实很简单,稍微懂点脑筋就把这个问题解决了,我们给这个小按钮外围包裹一个LinearLayout或RelativeLayout,当我们点击外围的LinearLayout或RelativeLayout的时候把这个事件传递给小按钮问题立马就解决了

关键代码:

public class FatArrowView extends RelativeLayout {
//拦截事件
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {( http://www.my516.com)
Log.v(TAG,"onInterceptTouchEvent start...");
return true;
}

//把事件分发给我们的子View CheckBox
@Override
public boolean onTouchEvent(MotionEvent event) {
Log.v(TAG,"onTouchEvent start...");
//当手指离开屏幕的时候设置CheckBox的状态
if (event.getAction() == MotionEvent.ACTION_UP){
ischeck = !ischeck;
mCheckBox.setChecked(ischeck);
}
return true;
}
}

转载于:https://www.cnblogs.com/hyhy904/p/11369924.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值