无法使用数据绑定在包含的布局中传递颜色变量

时间:2018-07-11 14:40:31

标签: android android-layout data-binding

我想将color变量传递给包含的布局,当前,我正尝试从我的colors.xml中传递color,并添加了变量类型'android.graphics.Color',但它不起作用,应该怎么做颜色的变量类型到底是什么?

<?xml version="1.0" encoding="utf-8"?>
<layout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">

    <data>

        <import type="android.view.View" />

        <variable
            name="isLoading"
            type="Boolean" />
        <variable
            name="loaderColor"
            type="android.graphics.Color" />
    </data>

    <com.wang.avi.AVLoadingIndicatorView
        android:layout_width="@dimen/btn_loading_indicator"
        android:layout_height="@dimen/btn_loading_indicator"
        android:layout_gravity="center"
        android:visibility="@{isLoading?View.VISIBLE:View.GONE}"
        app:indicatorColor="@{loaderColor}"
        app:indicatorName="LineSpinFadeLoaderIndicator" />
</layout>

主要布局

<include
                    layout="@layout/layout_btn_loading_indicator"
                    app:loaderColor="@{@color/theme_color}"
                    app:isLoading="@{viewModel.isLoading}" />

1 个答案:

答案 0 :(得分:2)

@color/color_name是资源ID,因此类型为int。您的变量应该像

<variable name="loaderColor" type="int" />