【发布时间】:2020-01-09 06:49:43
【问题描述】:
ViewDataBinding 类提供 setLifecycleOwner() 和 setLifecycleOwner()
但是当我在 xml 中使用它时,例如
android:onClick="@{()->InteractionPresenter.toggleFeedDiss(getLifecycleOwner())}"
会出现这样的错误
[数据绑定] {"msg":"找不到标识符 \u0027lifecycleOwner\u0027\n\n检查标识符是否拼写 正确,并且没有 \u003cimport\u003e 或 \u003cvariable\u003e 标记 是 丢失。","file":"/Users/maxz/AndroidStudioProjects/ppjoke/app/src/main/res/layout/layout_feed_interaction.xml","pos":[{"line0":34,"col0":71 ,"line1":34,"col1":84}]}
所以如果我想在与 lambda 的数据绑定中使用 LifeCycleOwner,我必须声明另一个变量,例如
<variable
name="lifeCycleOwner"
type="androidx.lifecycle.LifecycleOwner" />
然后我将使用我自己的变量,它可以工作
但是我怎样才能通过第一种方式获得生命周期所有者?
【问题讨论】:
-
第一种方式,你可能需要在xml中使用
activity/fragment变量。
标签: android kotlin android-lifecycle android-databinding android-livedata