Android中,控件的Enable和Clickable属性有何区别?
首先要搞清楚的是,当一个控件的clickable属性无论是true还是false,控件看起来都是没有任何区别的。而你设置enable的话,那么就有区别了。enable是false的话,控件看起来都不可点击了!
下面,看代码吧!
这种情况下,48行的日志是打印不出来的,而56行的那行日志是可以打印出来的。
再往下看:
这种情况下,无论44行还是53行的日志,都打印不出来。
由以上可以得出结论:
设置了enable为false的话,onClick事件是完全屏蔽的,而clickable属性就要看设置属性和设置OnClicListener的先后顺序了。
最后,肯定还有一点要搞清楚的是:在xml布局文件中使用这两个属性会怎么样呢?
答案是和前面那种是一样的,也就是说,xml布局文件其实在前面已经被设进去了。
最最后,至于为什么会这样,其实我也不知道,再深层次的东西,就要深究到事件分发那一块了。
题外话:说明的是两个属性的优先顺序,enable的优先级要高于clickable。如果enable为false的控件,是不会对事件进行消费的。