Textview и Seekbar привязаны к одному и тому же свойству, но textview не показывает обновленное значение - PullRequest
1 голос
/ 09 июля 2019

Я создал viemodel с MutableLiveData

val duration = MutableLiveData(2)

В моей Деятельности в наборе Привязка данных

binding = DataBindingUtil.setContentView(this, R.layout.activity_ticket)
    binding.viewmodel = this.viewModel

Вот мой макет

<data>
    <variable
            name="viewmodel"
            type="com.text.viewmodel.TicketViewModel"/>
</data>
 ...
  <TextView
            android:id="@+id/textview_duration"
            android:layout_margin="20dp"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@{String.valueOf(viewmodel.duration)}"
    />
    <SeekBar
            android:id="@+id/seekBar_duration"
            android:max="8"
            android:min="1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:progress="@={viewmodel.duration}"
    />

Когда пользователь изменил панель поиска, значение в ViewModel обновляется корректно, но текстовое представление не обновляется само.

1 Ответ

0 голосов
/ 09 июля 2019

Я нашел решение сам.

Я забыл установить активность как владелец жизненного цикла

binding = DataBindingUtil.setContentView<ActivityTicketBinding>(this, R.layout.activity_ticket)
binding.lifecycleOwner = this
binding.viewmodel = this.viewModel
...