7

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

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

在 ImageViews 上,我通过 RemoteViews.setViewVisibility() 执行此操作,一切正常。但是,对于 ProgressBar,我收到一个异常,说 ProgressBar 不能使用此方法。

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

4

2 回答 2

17

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

于 2011-08-25T12:56:39.333 回答
12

这可能是一个错误。您需要在 Android 本身的 Java 源代码中使用特定的注解 ( @RemotableViewMethod) 来将方法标记为可通过RemoteViews. View有这个 for setVisibility(),但是ProgressBar覆盖了那个方法并且在它自己的版本上没有注释。如果@RemotableViewMethod不是继承的,并且覆盖“撤消”注释,那将解释您看到的症状。

一种解决方法是使用两个应用小部件布局,并在更新应用小部件ProgressBar时创建对象时选择您想要的一个(带或不带 ) 。RemoteViews

我会做一个笔记来尝试复制这个,如果我看到同样的东西,我会在Android 问题跟踪器上发布一个问题。

于 2010-03-10T12:14:04.873 回答