Я пытался извлечь значение в базовый класс и расширить его с помощью ViewModels.Однако когда я это делаю, Обозреватель не придерживается LiveData.Например, когда у меня есть родительский класс с LiveData:
class Base : ViewModel() {
private val _ data = MutableLiveData()
val data: LiveData = _data
fun someEvent(foo: Foo) { // update _data }
}
class Derived : Base()
class Derived1 : Base()
, тогда возьмите одну из этих моделей представления и наблюдайте data
:
class Frag : Fragment {
onViewCreated() {
// get Derived, ViewModelProviders.of ...etc
derived.data.observe { // Doesn't observe changes }
}
}
Вызов Base.someEvent(foo)
не уведомляетLiveData во фрагменте.
Я хочу избежать получения ссылки на оба подкласса и вызова someEvent
для каждого.Следует отметить, что я использую один подход Activity, и все ViewModel имеют область действия Activity.