Я пытаюсь объединить dataBinding
с RxJava
, чтобы он выглядел примерно так:
layout.xml:
<android.support.constraint.ConstraintLayout
//...
app:rxClick="@{viewModel.onTap}">
<TextView
//...
android:text="@{viewModel.title}"
</TextView>
//...
ViewModel:
class ViewModel {
val title = PublishSubject.create<String>()
val onTap = PublishSubject.create<Void>()
//...
}
Но я не могу найти простой способ сделать это так.
Одна из вещей, которую я обнаружил во время исследования, это ObservableField
и LiveData
, которая включена в библиотеку dataBinding
.И я не думаю, что это хорошее решение, потому что rxJava
гораздо более сложный и ObservableField
, кажется, не совместим с rxJava
.
Еще одна вещь, которую я нашел, - это библиотека https://github.com/ArthurVimond/RxBindingAdapters который подходит к случаю.Но это не работает, сбой с ошибкой при компиляции:
e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
****/ data binding error ****msg:cannot find type element for io.reactivex.subjects.Subject
Есть ли другой вариант, который я пропустил?Есть предложения?