Kotlin stdlib y Databinding

¿Es posible usar methods de Kotlin stdlib en xml? Por ejemplo, este código

<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}"/> 

producir error de compilation

La ejecución falló para la tarea ': app: compileDevDebugJavaWithJavac'. java.lang.RuntimeException: Se encontraron errores de data binding. **** / error de data binding **** msg: no se puede encontrar el método isNotEmpty () en la class java.lang.String file: D: \ Projects \ PushTracker-Android \ app \ src \ main \ res \ layout \ fragment_appointment_simple_details. xml loc: 104: 44 – 104: 70 **** \ error de data binding ****

Es obvio que el data binding intenta encontrar el método isNotEmpty() en la Cadena de Java, pero ¿puedo forzar al comstackdor de data binding a usar la Cadena de Kotlin?

"Cadena de kotlin" no existe. La biblioteca estándar de Kotlin define los methods de extensión para crear el método al que se refiere. Pero dado que la biblioteca de data binding necesita generar código Java, no puede encontrar el método al que se refiere.

Para usar ese método, deberá llamarlo de la forma que Java lo llamaría, que es una function estática:

kotlin.text.StringsKt.isNotEmpty(viewModel.note)

EDITAR: este método está anotado con @InlineOnly , por lo que este método podría no existir fuera del código de Kotlin.

  • Android: comienza la animation cuando se carga el fragment
  • Kotlin - Ordenar colección de maps
  • package de alternativa protegida en kotlin
  • Convierte el código de RxJava a Kotlin correctamente
  • enlace de vista de android.R.id en Kotlin
  • Kotlin: Interface Queue no tiene constructores
  • ¿Cuál es la forma idiomática de clonar un MutableMap?
  • Argumento de tipo explícito Kotlin y RxJava
  • Cambiar el filter de color del elemento del cajón de navigation también cambia el imageView, que es el mismo ID de image
  • Kotlin, Proguard y lambdas
  • ¿Cómo configurar la versión del código de bytes de Kotlin en el proyecto Gradle para Java 8?