Android DataBinding: @BindingAdapter в Kotlin не распознает lambdas

Это мой BindingAdapter :

 @BindingAdapter(value = *arrayOf("bind:commentsAdapter", "bind:itemClick", "bind:avatarClick", "bind:scrolledUp"), requireAll = false) fun initWithCommentsAdapter(recyclerView: RecyclerView, commentsAdapter: CommentsAdapter, itemClick: (item: EntityCommentItem) -> Unit, avatarClick: ((item: EntityCommentItem) -> Unit)?, scrolledUp: (() -> Unit)?) { //Some code here } 

initWithCommentsAdapter – это функция верхнего уровня

Это мой макет (существенная часть):

 <layout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:bind="http://schemas.android.com/apk/res-auto"> <data> <variable name="viewModel" type="some.example.path.CommentsViewModel"/> <variable name="commentsAdapter" type="some.example.path.CommentsAdapter"/> </data> <android.support.v7.widget.RecyclerView ... bind:avatarClick="@{(item) -> viewModel.avatarClick(item)}" bind:itemClick="@{viewModel::commentClick}" bind:commentsAdapter="@{commentsAdapter}" bind:isVisible="@{viewModel.commentsVisibility}" bind:scrolledUp="@{() -> viewModel.scrolledUp()}" /> </layout> 

Когда я назначаю лямбда с вызовом метода kotlin в макете, у меня такая ошибка при построении:

 e: java.lang.IllegalStateException: failed to analyze: java.lang.RuntimeException: Found data binding errors. ****/ data binding error ****msg:cannot find method avatarClick(java.lang.Object) in class some.example.path.CommentsViewModel ****\ data binding error **** 

или если я назначаю метод по ссылке:

 e: java.lang.IllegalStateException: failed to analyze: java.lang.RuntimeException: Found data binding errors. ****/ data binding error ****msg:Listener class kotlin.jvm.functions.Function1 with method invoke did not match signature of any method viewModel::commentClick file:C:\Android\Projects\...\fragment_comments.xml loc:70:12 - 83:17 ****\ data binding error **** 

Но у меня есть такие методы с правильным типом, а не с Object

Вопрос

Как я могу назначить лямбда Kotlin для пользовательского @BindingAdapter в Kotlin в макете?

редактировать

Соответствующая часть viewModel:

 class CommentsViewModel(model: CommentsModel): BaseObservable() { //Some binded variables here ... fun commentClick(item: EntityCommentItem) { //Some code here } fun avatarClick(item: EntityCommentItem) { //Some code here } fun scrolledUp() { //Some code here } ... } 

Связывание переменных работает отлично

Intereting Posts
Как Lazy Инициализировать с параметром в Kotlin Генериры Котлина Массив <T> приводит к «Невозможно использовать T как параметр типа reified. Вместо этого используйте класс, но List <T> не делает Как начать аннотация Обработка (kapt) для локальной библиотеки? Выразить «супер» дженерики в функциональных типах Котлина? Почему экземпляр $ MockitoMock $ не идентифицируется как макет? Как уничтожить сообщение grpc в котлин? Наследовать от абстрактного класса с умножением варов в Котлине Есть ли какие-либо документы об модификаторах доступа в Котлин? Поток Akka, выше по потоку, не производя значения spring.config.location не работает на Spring Boot 2.0.0 M6 Использование Parceler с классом данных Kotlin с конструктором для сериализации Ошибка Kotlin при ссылке на активность из внутреннего класса Чистая архитектура: используйте разные классы моделей для разных источников данных? Как добавить несколько исторических данных в GoogleFit Что означает код «val jsonObj = json as JsonObject» в Котлине?