如何在 AndroidX 片段中使用 DataBinding

How to use DataBinding with AndroidX fragment

我正在使用 AndroidX 库,我的片段是扩展 androidx.fragment.app.fragment.Fragment,它提供了一个结构,我可以在其中简单地提供布局 ID 并跳过重写 onCreateView 函数,如下所示:

class MyFragment (@LayoutRes layout:Int): Fragment(layout){
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        //My View was created correctly.
    }
}

现在如何使用 DataBindingUtil 检索绑定对象? 我尝试了 DataBindingUtil.getBinding(view) 和 DataBindingUtil.findBinding(view) 但它们总是 return null。有没有办法不覆盖 onCreateView?

我刚刚找到了解决方案。它比我想象的更简单:|

class MyFragment (@LayoutRes layout:Int): Fragment(layout){
    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        MyFragmentBinding.bind(view)?.let{
           //Set binding data here.
        }
    }
}

在此处阅读更多内容:https://zhuinden.medium.com/simple-one-liner-viewbinding-in-fragments-and-activities-with-kotlin-961430c6c07c