在android studio 3.0中,当我们为kotlin创建一个新项目时,有两个插件自动添加到app build gradle文件中,如下所示:
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'为什么我们需要在android studio中应用android-extensions插件和kotlin-android插件?这背后有没有什么不同或原因。
发布于 2017-07-20 22:43:56
每个安卓开发人员都知道findViewById()。但是Kotlin不再需要findViewById了。
这是怎么发生的呢?这是因为Kotlin Android扩展。
如何使用Kotlin访问TextView :
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_login)
textView.setText("Hello World"); // No need(findViewById) to create a reference variable explicitly
}但是这一切是如何工作的呢?这就是'Kotlin Android扩展‘的魔力。
您可能已经注意到下面Gradle文件中的插件和activity类中的import语句。
apply plugin: 'kotlin-android-extensions'
import statement in Activity:
import kotlinx.android.synthetic.main.activity_login.*因为有了这个插件和import语句,我们不需要在我们的活动中显式地创建View对象。我们可以从布局文件中定义的名称直接引用View。
如果布局文件名是activity_main.xml,我们应该
import kotlinx.android.synthetic.main.activity_main.*.详情请看这里:http://kotlin-andro.blogspot.in/2017/07/kotlin-android-extensions.html
发布于 2017-08-28 02:22:28
这背后有什么不同或原因吗?
是的,这是有区别的。
kotlin-android-extensions插件是kotlin-android插件的一部分,而不是。添加扩展插件(显式或由Android Studio自动为您添加)的原因之一是消除必须处理findViewById函数,因为它可以帮助您无缝地恢复视图。
在内部,编译器创建了一个小的隐藏缓存函数,它为每个视图调用findViewById,下次你使用同一个视图时,它将从缓存中获取它,而不是再次调用findViewById。
因此,您可以添加kotlin-android来设置用于Android Studio的Kotlin,并添加kotlin-android-extensions来消除调用findViewById的需要。
干杯,编码快乐!
发布于 2018-05-24 22:27:50
kotlin-android用于kotlin支持,kotlin-android-extensions用于在项目中使用kotlin-android-extensions替换android.by中java的findViewById概念,您可以通过Id直接访问,您已经在.xml文件中提到过: android:id="@+id/tvNextAbout“您可以在活动示例中使用它:
tvNextAbout.setOnClickLisnet{}https://stackoverflow.com/questions/45057059
复制相似问题