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)}"