Связывание данных Android: контекст или ContextCompat? - PullRequest
0 голосов
/ 07 мая 2019

Если я использую привязку данных Android с помощью ViewModel s, например, для установки цвета представления, у меня есть несколько вариантов:

<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, используемым выражением привязки данных.

...