Каковы преимущества использования двусторонней привязки данных? - PullRequest
0 голосов
/ 15 октября 2019

Двустороннее связывание данных должно упростить процесс. Вам нужно наблюдать только одну переменную из пользовательского интерфейса, которая является той же самой переменной, которая получает изменения.

Например, макет будет:

<EditText
   android:id="@+id/id_name"
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:text="@={viewmodel.name}"/>

И в моей viewmodel:

val name= MutableLiveData<String>()

Однако здесь есть две проблемы:
1) AnОчевидно, что мы предоставляем MutableLiveData вместо LiveData, что не очень хорошая практика.
2) Более тонкий вариант: у меня не может быть проверки для значения, введенного пользователем, так как это значение присваивается строкедержите MutableLiveData прямо сейчас.

Есть ли обходной путь для этой проблемы?
(Я думал о InverseBindingAdapter, но мне пришлось бы переопределить поведение android: text.
Другой вариант - это чтобы MediatorLiveData наблюдал заMutabeLiveData, но это, кажется, много стандартного кода, плюс значение MutableLiveData в любом случае изменилось бы)

Если двустороннее связывание данных будет использоваться только в очень специфических сценариях, например, небольшие изменения, которые не связаны ссерверная часть и не нуждаются в проверке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...