网站开发多久完成,营销网站制作,如何做漂亮的网站,中国光刻机最新消息kotlin中使用ViewBinding绑定控件
什么是ViewBinding#xff1f;
View Binding是Android Studio 3.6推出的新特性#xff0c;主要用于减少findViewById的冗余代码#xff0c;但内部实现还是通过使用findViewById。通过ViewBinding#xff0c;可以更轻松地编写可与视图交互…kotlin中使用ViewBinding绑定控件
什么是ViewBinding
View Binding是Android Studio 3.6推出的新特性主要用于减少findViewById的冗余代码但内部实现还是通过使用findViewById。通过ViewBinding可以更轻松地编写可与视图交互的代码。在模块中启用ViewBinding之后系统会为该模块中的每个 XML 布局文件生成一个绑定类绑定类的实例包含对在相应布局中具有 ID 的所有视图的直接引用。在之前的项目中我们可以通过kotlin-android-extensions插件来绑定View控件的很遗憾在Android Studio 4.1之后kotlin-android-extensions插件已被废弃现在推荐使用ViewBinding来进行替代。注意视图绑定在 Android Studio 3.6 Canary 11 及更高版本中可用
配置ViewBinding
在app级别的build.gradle中的android闭包中添加buildFeatures设置viewBinding 为 true
android {namespace xxxcompileSdkVersion versions.compileSdkdefaultConfig {...}compileOptions {...}buildFeatures{viewBinding true}
}配置完成后 Sync一下gradle编译项目后会在build→generated→data_binding_base_class_source_out文件中生成相应的类。Binding类的命名规则是将布局文件按驼峰方式重命名后再加上Binding作为结尾。例如我们activity_main.xml布局对应的Binding类就是ActivityMainBinding。 如果有些布局文件你不希望为它生成对应的Binding类可以在该布局文件的根元素位置加入 tools:viewBindingIgnoretrue 使用ViewBinding
在Activity使用viewbing如下代码所示。注意我们需要先Binding类的getRoot方法获取到对应布局文件的根元素然后将其传入到setContentView方法中否则设置监听事件会无法生效
class MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)//初始化ViewBinding控件var myBinding ActivityMainBinding.inflate(layoutInflater)//把根元素的对象作为参数传入到setContentView()方法中setContentView(myBinding.root)//botton是activity_main.xml中的一个按钮idmyBinding.botton.setOnClickListener {//Code Logic}}
}