将数据绑定从 kotlin-android-extensions 替换为 kotlin-kapt

Posted

技术标签:

【中文标题】将数据绑定从 kotlin-android-extensions 替换为 kotlin-kapt【英文标题】:Replacing data binding from kotlin-android-extensions to kotlin-kapt 【发布时间】:2021-11-26 17:32:24 【问题描述】:

由于 kotlin-android-extensions 在 kotlin 4.20 中已被弃用,我想将代码移至支持的方法。我试过https://medium.com/back-market-engineering/from-kotlin-synthetics-to-android-viewbinding-the-definitive-guide-c98c6e89fe0b 仍然没有很好地描述数据绑定。

【问题讨论】:

您将数据绑定与视图绑定(两个不同的东西)混为一谈,您无需使用 kotlin-kapt 即可使用视图绑定。 ***.com/questions/65009040/…的可能重复 【参考方案1】:

我不确定是否真的需要数据绑定。无论如何,如果代码以前可以工作,并且我们想让它在没有 kotlin-android-extensions 的情况下工作,我们必须这样做: 在 gradle 文件代码中替换 apply plugin 'kotlin-android-extensions' to plugins id 'kotlin-android' id 'kotlin-kapt' 在使用import kotlinx.android.synthetic. 的类中

private var _binding: YourLayoutNameBinding? = null //YourLayoutName change to your Layout name
private val binding get() = _binding!!
override fun onCreateView(
    inflater: LayoutInflater,
    container: ViewGroup?,
    savedInstanceState: Bundle?
): View 
    _binding = YourLayoutNameBinding.inflate(inflater, container, false)//YourLayoutName change to your Layout name
    return binding.root



override fun onDestroyView() 
    super.onDestroyView()
    _binding = null

【讨论】:

以上是关于将数据绑定从 kotlin-android-extensions 替换为 kotlin-kapt的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ajax 查询将数据绑定到 kendoui 网格?

如何将检索到的数据从 v-for 绑定到 Vuejs 中的数据对象?

将数据从父范围绑定到角度树控件中节点中的元素的方法?

如何将项目从淘汰赛 foreach 传递到部分视图作为数据绑定?

将方法从后面的代码转换为 ICommand 数据绑定 Xamarin.Forms

如何将从存储过程创建的绑定源绑定到gridview