我想知道是否有任何方法可以在表达式属性中调用扩展,

例如,这是一些扩展

fun String.parseServerDate():String{
 ...
}

要在Kotlin中打电话,我们使用myTime.parseServerDate()
所以,我的问题是如何在表达式语言中调用此扩展名

尝试过@{mydate.parseServerDate()}不起作用

我尝试将我的扩展kt文件导入<import>标记,但似乎没有任何反应

最佳答案

您不能在XML中使用扩展功能

您可以做的是为您要对 View 执行的任何操作创建数据绑定(bind)适配器,或者创建一个对象并将该函数放入其中,以便可以在任何需要的地方使用它

object Functions{
   fun parseServerDate(string : String) {
   ...
   }
}



//in xml

<import type="the object path"/>

@{Functions.parseServerDate(data.string)}

为了让我为您提供更多帮助,您必须更具体地了解您想做什么,即扩展功能的作用

您可以在这里阅读有关绑定(bind)适配器的信息https://developer.android.com/topic/libraries/data-binding/binding-adapters

10-07 19:50