ViewBinding - Android中findViewById的替代方案

谷歌已经把kotlin-android-extensions插件废弃,目前推荐使用ViewBinding来进行替代。

要想使用ViewBinding需要注意两件事。第一确保你的Android Studio是3.6或更高的版本。第二,在你项目工程模块的build.gradle中加入以下配置

1
2
3
4
5
6
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

 

posted on   Devil'soul  阅读(269)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示