这是我的XML:
android:textColor="@{viewModel.daysSet.contains(viewModel.days.mon) ? @color/selectedText : @color/black }"
查看模型:
val daysSet = MutableLiveData<MutableSet<Days.Day>>().apply {
value = HashSet<Days.Day>()
}
每当daysSet更改时,UI都不会更改。我也做过
binding.setLifecycleOwner(viewLifecycleOwner)
添加到集合中
fun evalDaySet(day: Days.Day):String {
val daysSet = daysSet.value
testText.value=true
if (!daysSet!!.contains(day)) {
daysSet.add(day)
return "Add"
} else {
daysSet.remove(day)
return "Remove"
}
}
它只是不刷新。但是,该集合肯定是添加的,并且它会在重新创建视图时设置颜色。不会将更改通知绑定。 MutableSet似乎有问题。是否有另一种数据结构可以实现此目标? Maps是否可以实现这一目标? 它说他们在这里“受支持”: https://developer.android.com/topic/libraries/data-binding/expressions#collections