我在App Widget中使用ProgressBar遇到了一个有趣的情况......文档(http://developer.android.com/guide/topics/appwidgets/index.html)说ProgressBar是受支持的widget类...
我没有问题让ProgressBar显示在我的App Widget中,但问题是我希望它只在后台处理发生时显示为用户的视觉反馈。
在ImageViews上我是通过RemoteViews.setViewVisibility()完成的,一切正常。但是,使用ProgressBar,我得到一个例外,说ProgressBar不能使用此方法。
这是故意还是这个错误?有没有办法解决这个问题?
答案 0 :(得分:17)
更简单的想法是将进度条放在某个容器中(比如线性布局)并显示/隐藏容器。
答案 1 :(得分:12)
这可能是一个错误。在Android自身的Java源代码中,您需要一个特定的注释(@RemotableViewMethod
),以便通过RemoteViews
将方法标记为可用。 View
setVisibility()
有此ProgressBar
,但@RemotableViewMethod
会覆盖该方法,并且在自己的版本中没有注释。如果ProgressBar
未被继承,并且覆盖“撤消”注释,则可以解释您看到的症状。
解决方法是在更新应用小部件时创建RemoteViews
对象时,使用两个应用小部件布局并选择所需的布局(有或没有{{1}})。
我会做一个注释尝试复制这个,如果我看到同样的事情,我会在Android issue tracker上发布一个问题。