Android设置setClickable为false无效

2018-04-19  本文已影响62人  用生命在折腾

在项目开发过程中,设置了点击事件并设置了setClickable为false,控件仍可以点击,原因如下:

/**
     * Register a callback to be invoked when this view is clicked. If this view is not
     * clickable, it becomes clickable.
     *
     * @param l The callback that will run
     *
     * @see #setClickable(boolean)
     */
    public void setOnClickListener(@Nullable OnClickListener l) {
        if (!isClickable()) {
            setClickable(true);
        }
        getListenerInfo().mOnClickListener = l;
    }

View源码的setOnClickListener中,如果控件不可点击会将控件改变状态为setClickable(true)。
解决办法:setClickable放在setOnClickListener方法之后即可。

上一篇下一篇

猜你喜欢

热点阅读