Android 如何在数据绑定xml文件中使用getLifecycleOwner()方法

Android 如何在数据绑定xml文件中使用getLifecycleOwner()方法,android,kotlin,android-lifecycle,android-databinding,android-livedata,Android,Kotlin,Android Lifecycle,Android Databinding,Android Livedata,类ViewDataBinding提供setLifecycleOwner()和setLifecycleOwner() 但是当我在xml中使用它时,比如 android:onClick="@{()->InteractionPresenter.toggleFeedDiss(getLifecycleOwner())}" 结果会是这样的错误 [数据绑定]{“msg”:“找不到标识符” \u0027lifecycleOwner\u0027\n\n检查标识符是否拼写正确 正确,并且没有\u003cim

ViewDataBinding
提供
setLifecycleOwner()
setLifecycleOwner()
但是当我在xml中使用它时,比如

android:onClick="@{()->InteractionPresenter.toggleFeedDiss(getLifecycleOwner())}"
结果会是这样的错误

[数据绑定]{“msg”:“找不到标识符” \u0027lifecycleOwner\u0027\n\n检查标识符是否拼写正确 正确,并且没有\u003cimport\u003e或\u003cvariable\u003e标记 是 缺少“,“文件”:“/Users/maxz/AndroidStudioProjects/ppjoke/app/src/main/res/layout/layou feed_interaction.xml”,“pos”:[{“line0”:34,“col0”:71,“line1”:34,“col1”:84}]

因此,如果我想在与lambda的数据绑定中使用LifeCycleOwner,我必须声明另一个变量,如

<variable
   name="lifeCycleOwner"
   type="androidx.lifecycle.LifecycleOwner" />

然后我将使用我自己的变量,它是有效的


但是,如何通过第一种方法获得生命周期所有者?

要实现第一种方法,必须将片段实例传递给布局

<variable
    name="fragment"
    type="androidx.fragment.app.Fragment" />

对于第一种方法,您可能需要xml中的
activity/fragment
变量。
android:onClick="@{()->InteractionPresenter.toggleFeedDiss(fragment.viewLifecycleOwner)}"