例如,如果我将Android数据绑定与ViewModel
一起使用以设置视图的颜色,那么我有几个选择:
<View ...
background="@color/foo" />
或
class MyViewModel(context: Application): AndroidViewModel(context) {
// this is a dramatic oversimplification, but for illustration purposes...
fun theColor: Int = ContextCompat.getColor(context, R.color.foo)
}
<View ...
background="@{viewModel.theColor}" />
或
class MyViewModel(context: Application): AndroidViewModel(context) {
fun theColor: Int = R.color.foo
}
<View ...
background="@{context.getColor(viewModel.theColor)}" />
假设主题对我很重要,这会有所作为吗?具体来说,我的意思是数据绑定表达式使用ContextCompat
返回的颜色与Context
返回的颜色之间的差异。