【问题标题】:How to get view when calling a method with data binding调用具有数据绑定的方法时如何获取视图
【发布时间】:2017-10-26 09:56:03
【问题描述】:

我正在从 onClick 属性调用一个方法,并在 ImageView 上进行数据绑定:

android:onClick="@{() -> myClass.myMethod()}"

myMethod() 获取一个视图作为参数,我知道我可以这样做:

android:onClick="@{(view) -> myClass.myMethod(view)}"

但我想传递 ImageView 而不是 View

对此有何建议?

【问题讨论】:

  • view 是通用类型,所以如果你将 onclick 设置为 ImageView,你必须将它转换为你想要的方法中的 imageview (ImageView)view。

标签: android data-binding onclick android-databinding


【解决方案1】:

你可以投射。

或者你可以直接传递视图对象。 DataBinding 通过视图 id 生成视图访问器(例如,如果您的 ImageView 具有 id user_picture,您可以从 DataBinding 布局中以userPicture 访问它)。

但我不建议这样做,最好创建自定义 BindingAdapter,因为您的视图模型在大多数情况下不应该直接访问视图或上下文,但所有视图特定的东西都应该在 BindingAdapter 中处理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2017-04-21
    • 1970-01-01
    • 1970-01-01
    • 2013-09-29
    • 1970-01-01
    相关资源
    最近更新 更多