kotlin apply的坑

apply里面可以调用外部对象的属性或方法!!

起因是findViewById 返回为null ,抛出异常
各种尝试无果后发现是因为在自定义View中,在某个drawable.apply中设置了id,这个id实际上是设置给View而不是drawable的,导致view的id在xml和这里的值产生冲突,所以自然findViewById返回了 null;

ViewX.java:
drawable.apply{
 id = xxx;(可能是viewX对象的方法)
}

其实在apply中设置的属性可以通过点击进入相应的类来得到其应用的对象;

作用域函数:
image.png

不使用对象标识的话,默认是应用到内部对象;如果某个属性内部对象没有,但外部对象有,则会对外部对象生效。

https://www.kotlincn.net/docs/reference/scope-functions.html

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

推荐阅读更多精彩内容