kotlin-android-extensions 插件 实现了 视图绑定 功能 , 开发过程中 , 可以不用调用如下形式 :
① 传统方法 : findViewById(R.id.textView)
② 注解绑定 : @BindView(R.id.textView)lateinit var textView:TextView
③ 视图绑定 : ActivityMainBinding.inflate(getLayoutInflater()).textView
kotlin-android-extensions 插件视图绑定在导入 kotlinx.android.synthetic.main.activity_main.* 后 , 可以直接使用 组件 ID ;
在 Module 下的 build.gradle 中导入 kotlin-android-extensions 插件 ;
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
apply plugin: 'kotlin-kapt'
还可以使用这种导入方式 :
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-android-extensions'
id 'kotlin-kapt'
}
在 Activity 中导入视图 :
import kotlinx.android.synthetic.main.activity_main.*
布局文件 :
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:textStyle="bold"
android:padding="20dip"
android:background="#FF00FF00"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
package kim.hsl.animator
import android.animation.ValueAnimator
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
textView.setText("MainActivity")
}
}