Kotlin的Android Extensions和变量

0le*_*leg 3 android kotlin

在Kotlin之前,Android开发人员应该在这样的变量中保存对Activity的Views的引用:

Button fooBtn = (Button) findViewById(R.id.btn_foo)
Run Code Online (Sandbox Code Playgroud)

减少锅炉板代码的数量和findViewById调用次数.

随着Kotlin的Android Extensions的推出,我们可以通过简单地使用以下内容来引用相同的Button:

btn_foo
Run Code Online (Sandbox Code Playgroud)

问题:

  1. 是否btn_foo有对Button保存的引用,或者findViewById每次都调用它?
  2. 开发人员是否仍然假设使用变量来存储btn_foo以提高应用程序的性能,或者只是直接在代码中使用它?

编辑:一个解释扩展如何工作,但它仍然有点不清楚.

qui*_*iro 5

它是缓存的,因此findViewById每次需要时都不会调用它.存储变量并不一定会提高应用程序的性能