我用MutableLiveData创建了一个viemodel

val duration = MutableLiveData(2)

在我的 Activity 中设置数据绑定(bind)
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中的值会正确更新,但是文本 View 不会刷新。

最佳答案

我自己找到了解决方案。

我忘记将 Activity 设置为生命周期所有者

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

关于android - Textview和Seekbar绑定(bind)到同一属性,但是textview不显示更新后的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56949157/

10-11 14:30
查看更多