当颜色来自api作为十六进制代码时,如何编写绑定适配器以设置背景颜色?

时间:2019-02-11 09:16:13

标签: android kotlin

背景色来自API,格式为FFF9E6。我正在使用数据绑定。我无法理解如何将其设置为背景色。我相信绑定适配器可以工作,但不确定如何编写。如何为同一适配器编写绑定适配器?

2 个答案:

答案 0 :(得分:1)

几个月前,我遇到了同样的问题。我所做的是将来自API的数据存储到一个POJO类中。然后在使用该POJO类成员作为数据绑定变量的XML文件中。 即

<TextView
            android:layout_width="0dp"
            android:layout_height="60dp"
            android:layout_margin="@dimen/_8dp"
            android:layout_weight="1"
            android:gravity="center"
            android:padding="@dimen/_8dp"
            app:color="@{item.color}" />

它是绑定适配器

@BindingAdapter("bind:color")
public static void setStatus(TextView textView, String color) {

}

答案 1 :(得分:1)

此代码对我而言有效。

@BindingAdapter("android:backgroundColor")
fun ViewGroup.setBackground(backgroundColor: String) {

val color: Int = try {
    Color.parseColor(background)
} catch (e: Exception) {
    Color.parseColor("#$background")
}
setBackgroundColor(color)
}