Как использовать DataBindings с RxJava? - PullRequest
1 голос
/ 27 июня 2019

Я пытаюсь объединить 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

Есть ли другой вариант, который я пропустил?Есть предложения?

...