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名称。
答案 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