Kotlin合成属性差异对于Android视图?

时间:2017-11-03 06:48:22

标签: android kotlin-android-extensions

Kotlin Android extension documentation表示您基本上可以使用import语句执行findViewById()的快捷方式。但是,导入特定视图kotlinx.android.synthetic.main.<layout-file-name>.<view-id>和从kotlinx.android.synthetic.main.<layout-file-name>.view.<view-id>导入之间的区别是什么?如果您执行前者,IDE将向我显示三个相同的视图ID,分别用于Activity,Dialog和Fragment。如果您执行后者,它只会显示一次视图ID名称。

1 个答案:

答案 0 :(得分:0)

IDE提示显示可以使用视图引用的类类型:Activity,Fragment,Dialog或View。键入import语句时,IDE将显示可用的所有类型的完成。但是,当您尝试在类中使用它(没有import语句)时,IDE会显示您的类正在扩展的特定类型的导入提示。

例如,在活动类中,扩展AppCompatActivity,您将获得导入提示

<view-id> from <layout-file-name> for Activity

但是,如果您的类从View或子类延伸,则可以得到:

<view-id> from <layout-file-name> for View

关于为什么有多个选择,视图缓存的实现可能因不同类型而不同。 More on this here