是否可以在xml中使用Kotlin stdlib中的方法?例如该代码Kotlin stdlib和Databinding
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:textColor="#333333"
android:text="@{viewModel.note}"
android:visibility="@{viewModel.note.isNotEmpty ? View.VISIBLE : View.GONE}"/>
产生编译错误
执行失败的任务 ':应用程序:compileDevDebugJavaWithJavac'。 java.lang.RuntimeException:发现数据绑定错误。 ****/data binding error **** msg:无法在类java.lang.String中找到方法isNotEmpty() file:D:\ Projects \ PushTracker -Android \ app \ src \ main \ res \ layout \ fragment_appointment_simple_details.xml LOC:104:44 - 104:70个**** \数据绑定错误****
显而易见的是,数据绑定试图找到方法isNotEmpty()
在Java中的字符串,但我可以强制绑定编译器使用kotlin的字符串?
是的,我试过这个,但也用'@InlineOnly'填充。据我所知,只有一个解决方案 - 用@ JvmStatic'在一些辅助对象中定义这个方法@ – dewarder
@Google'@ JvmStatic'没有必要,你可以调用这个方法。推荐的方法是使用文件级功能,而不是对象方法。 – voddan