我想知道是否有任何方法可以在表达式属性中调用扩展,
对于例如,这是一些扩展
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
关于android - 数据绑定(bind)表达式中的调用扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58166175/