数据绑定ColorStateList

时间:2016-10-24 16:35:04

标签: android

我正在使用名为MaterialProgressBar的开源组件,该组件具有名为 mpb_progressTint 的tint属性,该属性被定义为ColorStateList。我正在使用数据绑定,但无法使用以下错误设置值:

  

msg:无法找到属性' app的mpter:mpb_progressTint'参数类型为int on me.zhanghai.android.materialprogressbar.MaterialProgressBar。

这是我的XML:

<me.zhanghai.android.materialprogressbar.MaterialProgressBar
        android:id="@+id/progressBar"
        style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal.NoPadding"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:max="@{vm.max}"
        android:progress="@{vm.progress}"
        android:visibility="@{vm.isComplete ? View.GONE : View.VISIBLE }"
        app:mpb_progressTint="@{vm.isDownloading ? @color/my_blue : @color/my_gray}"
        app:mpb_progressStyle="horizontal"
        app:mpb_showTrack="false"
        app:mpb_useIntrinsicPadding="false"
        />

1 个答案:

答案 0 :(得分:0)

您必须将属性 app:mpb_progressTint 与 MaterialProgressBar类中适当的setter方法。您可以通过添加到Activity或Fragment或任何其他类注释来完成此操作:

@BindingMethods({
    @BindingMethod(type = me.zhanghai.android.materialprogressbar.MaterialProgressBar.class,
           attribute = "app:mpb_progressTint",
           method = "setProgressTintList") })
public class MainActivity extends AppCompatActivity {
   // your activity body here

}