Android ProgressBar可绘制对象未从数据绑定更新

问题描述 投票:0回答:1

我需要根据状态为ProgressBar设置不同的背景-两个图标和加载动画。如果我从xml这样设置,就可以使用它:

android:indeterminateDrawable="@drawable/icon"

但是我正在尝试通过数据绑定来进行编程更新。我的绑定适配器:

@BindingAdapter("state")
fun setState(view: ProgressBar, state: DetailsViewModel.ProgressState?) {
    when(state) {
        DetailsViewModel.ProgressState.Unpaired -> {
            view.indeterminateDrawable = view.resources.getDrawable(R.drawable.ic_unpaired)
        }
        DetailsViewModel.ProgressState.Checking -> {
            view.indeterminateDrawable = view.resources.getDrawable(R.drawable.circular_progress_bar)
        }
        //....
    }
}

如果我从适配器图标设置它,则不会出现,并且进度动画没有运行(但是确实有)。可能我缺少某些属性更新或类似内容。我也尝试调用invalidate()。

做这种事情的正确方法是什么?

android android-databinding android-progressbar
1个回答
0
投票

数据绑定与此无关。您可能只是忘记了在进度条上调用setIndeterminate(true);。默认情况下,它没有设置此标志。

© www.soinside.com 2019 - 2024. All rights reserved.