TextView设置selector后,没有点击效果

今天忘了一个知识点,给TextView设置了一个background,用的是SelectListDrawable,就是想实现View在不同状态下改变背景色。怎么试效果就是出不来,忘了一件事,还是通过源码比较直接:

public void setOnClickListener(@Nullable OnClickListener l) {
    if (!isClickable()) {
        setClickable(true);
    }
    getListenerInfo().mOnClickListener = l;
}

public boolean onTouchEvent(MotionEvent e) {
    ...
    if (((viewFlags & CLICKABLE) == CLICKABLE ||
    (viewFlags & LONG_CLICKABLE) == LONG_CLICKABLE) ||
    (viewFlags & CONTEXT_CLICKABLE) == CONTEXT_CLICKABLE) {
    ...
}

创建TextView的时候,默认状态下并不会设置CLICKABLE,可以通过添加点击监听,判断TextView是否可点,如果isClickable为false,就会添加CLICKABLE标记,这个时候再回调onTouchEvent的时候if (((viewFlags & CLICKABLE) == CLICKABLE ||…处理点击事件的代码才会被执行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值