为什么我不能对TextView textColor使用数据绑定?

时间:2019-08-09 13:20:12

标签: android android-databinding

我有TextView和 当我绑定 android:textColor="@{viewModel.theme.primaryTextColor}" 其中primaryTextColor是数据类Theme(val primaryTextColor:String)

我收到此编译错误 Cannot find a setter for \u003candroid.widget.TextView android:textColor\u003e that accepts parameter type \u0027java.lang.String\u0027\n\nIf a binding adapter provides the setter, check that the adapter is annotated correctly and that the parameter type matches."

我更改android:textColor ="#FF00000"后就可以使用

1 个答案:

答案 0 :(得分:1)

尝试

@BindingAdapter({"bind:color"})
fun setColor(textView : TextView , primaryTextColor :String ) {
    textView.textColor = (ContextCompat.getColor(textView.getContext(), primaryTextColor)
}

并在xml中添加此行

app:color="@{viewModel.theme.primaryTextColor}"

注意:如果不作相应更改,primaryTextColor为String。