谷歌已经把kotlin-android-extensions插件废弃,目前推荐使用ViewBinding来进行替代。
要想使用ViewBinding需要注意两件事。第一确保你的Android Studio是3.6或更高的版本。第二,在你项目工程模块的build.gradle中加入以下配置
android { ... buildFeatures { viewBinding true } }
OK,全局配置完毕!
当然,如果有些布局文件你不希望为它生成对应的Binding类,可以在该布局文件的根元素下加如下声明
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ... tools:viewBindingIgnore="true"> ... </LinearLayout>
一旦启动了ViewBinding功能之后,Android Studio会自动为我们所编写的每一个布局文件都生成一个对应的Binding类。
Binging类的命名规则是将布局文件按驼峰方式重命名后,再加上Binging作为结尾。
假如我们定义了一个activity_main.xml布局文件,那么与之对应的Binging类就是ActivityMainBinding。
接下来我们看一下如何使用ViewBinding来实现在MainActivity中设置TextView内容的功能
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.textView.text = "Hello"
}
ViewBinding的用法可以说就是这么简单。其中ActivityMainBinding就是activity_main.xml布局文件对应的Binding类,inflate函数用来加载布局,参数接收一个LayoutInflater(在Activity中可以直接获取使用)。接着调用Binding类的getRoot()方法,可以得到activity_main.xml根元素的实例。
注意:我们要把根元素的实例传入到setContentView()函数中,这样Activity就可以显示activity_main.xml这个布局的内容了。
接着调用getTextVew函数可以获取id为textView的元素实例,最后为TextView赋值。
本篇就介绍到这里,如果想了解ViewBinding更多的用法(Frgment、Adapter中使用ViewBinding等知识内容),请查看此连接(郭霖大神总结):
https://cloud.tencent.com/developer/article/1781726?areaSource=102001.13&traceId=VRtiOCCKLXj-fGovGPjiN
标签:xml,findViewById,ViewBinding,布局,Binding,activity,Android,main From: https://www.cnblogs.com/shibin90/p/17418627.html