将数据绑定从 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的主要内容,如果未能解决你的问题,请参考以下文章
如何将检索到的数据从 v-for 绑定到 Vuejs 中的数据对象?
如何将项目从淘汰赛 foreach 传递到部分视图作为数据绑定?