apply里面可以调用外部对象的属性或方法!!
起因是findViewById 返回为null ,抛出异常
各种尝试无果后发现是因为在自定义View中,在某个drawable.apply中设置了id,这个id实际上是设置给View而不是drawable的,导致view的id在xml和这里的值产生冲突,所以自然findViewById返回了 null;
ViewX.java:
drawable.apply{
id = xxx;(可能是viewX对象的方法)
}
其实在apply中设置的属性可以通过点击进入相应的类来得到其应用的对象;
作用域函数:
不使用对象标识的话,默认是应用到内部对象;如果某个属性内部对象没有,但外部对象有,则会对外部对象生效。
https://www.kotlincn.net/docs/reference/scope-functions.html