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 2023-05-21 15:00 Devil'soul 阅读(269) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律