android - `bind` 中的 `inflate` , `setContentView` 和 `DataBindingUtil` 有什么区别

标签 android kotlin android-databinding android-jetpack

我看过DataBindingUtil与所有三种方法一起使用,并且从文档(https://developer.android.com/reference/android/databinding/DataBindingUtil)中不清楚这三种方法有什么区别。

最佳答案

bind 采用已经膨胀的 View 层次结构并返回 ViewDataBinding为了它。
inflate 获取布局资源 ID,从中扩展 View 层次结构并返回 ViewDataBinding为了它。它基本上等于

val layoutInflater = LayoutInflater.from(context)
val view = layoutInflater.inflate(R.layout.some_layout, ...)
val binding = DataBindingUtil.bind<SomeLayoutBinding>(view)
setContentView 获取布局资源 ID,从中扩展 View 层次结构,将其设置为 Activity 内容并返回 ViewDataBinding对于膨胀的 View 层次结构。它基本上等于
setContentView(R.layout.some_layout)
val view = findViewById<View>(android.R.id.content)
val binding = DataBindingUtil.bind<SomeLayoutBinding>(view)

关于android - `bind` 中的 `inflate` , `setContentView` 和 `DataBindingUtil` 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62533116/

相关文章:

android - 如何在 Dialog 中使用数据绑定(bind)?

android - 我想获取和查看短信对话?

android - 禁用选项卡之间的滑动

kotlin - var默认为public final,但可以重新安装

kotlin - Kotlin序列中的短路操作

android - 当所有 EditText 完成时启用按钮

android - 当应用程序在后台被杀死且设备被锁定时,警报管理器将无法工作

具有 Internet 连接的 VirtualBox 上的 Android ICS x86

kotlin - Kotlin 版本中的 `M` 是什么意思?

android - 我不能在 kotlin 中使用 DataBindingUtil.setContentView()