android studio 3.0中Kotlin android和Kotlin android扩展的区别

android studio 3.0中Kotlin android和Kotlin android扩展的区别,android,kotlin-android-extensions,android-studio-3.0,Android,Kotlin Android Extensions,Android Studio 3.0,在android studio 3.0中,当我们为kotlin创建一个新项目时,有两个插件会自动添加到app build gradle文件中,如下所示: apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' 为什么除了android studio中的kotlin android插件外,我们还需要应用android扩展插件?这背后有什么不同或原因。每个Android开发者都知道findViewById。

在android studio 3.0中,当我们为kotlin创建一个新项目时,有两个插件会自动添加到app build gradle文件中,如下所示:

apply plugin: 'kotlin-android'

apply plugin: 'kotlin-android-extensions'

为什么除了android studio中的kotlin android插件外,我们还需要应用android扩展插件?这背后有什么不同或原因。

每个Android开发者都知道findViewById。但是Kotlin不再需要findViewById

这是怎么发生的?这是因为Kotlin的Android扩展

如何使用Kotlin访问TextView:

但这一切是如何运作的呢??这就是“Kotlin Android扩展”的魔力所在

您可能已经注意到Gradle文件中的以下插件和我们活动类中的导入语句

apply plugin: 'kotlin-android-extensions'

import statement in Activity:

import kotlinx.android.synthetic.main.activity_login.*
由于这个plugin和import语句,我们不需要在活动中显式地创建视图对象。我们可以从布局文件中定义的名称直接引用视图

如果布局文件名是activity_main.xml,我们应该

import kotlinx.android.synthetic.main.activity_main.*.
有关详细信息,请参见此处:

这背后有什么不同或原因吗

是的,有区别

kotlin android扩展插件不是kotlin android插件的一部分。您添加Android Studio为您显式或自动添加的扩展插件的原因之一是不必处理findViewById函数,因为它可以帮助您无缝恢复视图

编译器在内部创建一个小的隐藏缓存函数,该函数为每个视图调用findViewById,下次使用同一视图时,它将从缓存中获取该函数,而不是再次调用findViewById

因此,您可以添加kotlin android来为android Studio设置kotlin,从而消除调用findViewById的需要

干杯,快乐编码

kotlin android插件允许您在android Studio上使用kotlin; kotlin android扩展提供了一套工具,使android开发更容易。

kotlin android用于支持kotlin,kotlin android extensions用于替换android中java的findViewById概念。通过在项目中使用kotlin android extensions,您可以直接通过您在.xml文件中提到的Id进行访问,如:android:Id=@+Id/tvNextAbout 您可以在活动示例中使用它:

tvNextAbout.setOnClickLisnet{}
tvNextAbout.setOnClickLisnet{}