AppWidget中的ProgressBar

时间:2010-03-10 09:35:16

标签: android progress-bar android-appwidget

我在App Widget中使用ProgressBar遇到了一个有趣的情况......文档(http://developer.android.com/guide/topics/appwidgets/index.html)说ProgressBar是受支持的widget类...

我没有问题让ProgressBar显示在我的App Widget中,但问题是我希望它只在后台处理发生时显示为用户的视觉反馈。

在ImageViews上我是通过RemoteViews.setViewVisibility()完成的,一切正常。但是,使用ProgressBar,我得到一个例外,说ProgressBar不能使用此方法。

这是故意还是这个错误?有没有办法解决这个问题?

2 个答案:

答案 0 :(得分:17)

更简单的想法是将进度条放在某个容器中(比如线性布局)并显示/隐藏容器。

答案 1 :(得分:12)

这可能是一个错误。在Android自身的Java源代码中,您需要一个特定的注释(@RemotableViewMethod),以便通过RemoteViews将方法标记为可用。 View setVisibility()有此ProgressBar,但@RemotableViewMethod会覆盖该方法,并且在自己的版本中没有注释。如果ProgressBar未被继承,并且覆盖“撤消”注释,则可以解释您看到的症状。

解决方法是在更新应用小部件时创建RemoteViews对象时,使用两个应用小部件布局并选择所需的布局(有或没有{{1}})。

我会做一个注释尝试复制这个,如果我看到同样的事情,我会在Android issue tracker上发布一个问题。