有关于enable和clickable

Android中,控件的Enable和Clickable属性有何区别?

首先要搞清楚的是,当一个控件的clickable属性无论是true还是false,控件看起来都是没有任何区别的。而你设置enable的话,那么就有区别了。enable是false的话,控件看起来都不可点击了!

下面,看代码吧!

enable和Clickable

这种情况下,48行的日志是打印不出来的,而56行的那行日志是可以打印出来的。

再往下看:

enable和Clickable

这种情况下,无论44行还是53行的日志,都打印不出来。

由以上可以得出结论:

设置了enable为false的话,onClick事件是完全屏蔽的,而clickable属性就要看设置属性和设置OnClicListener的先后顺序了。

最后,肯定还有一点要搞清楚的是:在xml布局文件中使用这两个属性会怎么样呢?

答案是和前面那种是一样的,也就是说,xml布局文件其实在前面已经被设进去了。


最最后,至于为什么会这样,其实我也不知道,再深层次的东西,就要深究到事件分发那一块了。

题外话:说明的是两个属性的优先顺序,enable的优先级要高于clickable。如果enable为false的控件,是不会对事件进行消费的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容