ProgressBar в AppWidget

Я столкнулся с интересной ситуацией с использованием ProgressBar в App Widget … Документация ( http://developer.android.com/guide/topics/appwidgets/index.html ) гласит, что ProgressBar – это поддерживаемый класс виджетов. ,

У меня нет проблем с тем, чтобы ProgressBar отображался в моем App Widget, но проблема в том, что я хочу, чтобы он отображался только как визуальная обратная связь с пользователем при выполнении фоновой обработки.

В ImageViews я делаю это с помощью RemoteViews.setViewVisibility (), и все работает нормально. Однако с ProgressBar я получаю исключение, говорящее, что ProgressBar не может использовать этот метод.

Является ли это преднамеренным или это ошибка? Есть ли способ решить эту проблему?

Еще более простая идея состоит в том, чтобы поместить индикатор выполнения в некоторый контейнер (скажем, линейный макет) и показать / скрыть контейнер.

Это может быть ошибка. Для конкретного метода, доступного через RemoteViews , требуется конкретная аннотация ( @RemotableViewMethod ) в исходном коде Java для Android. View имеет это для setVisibility() , но ProgressBar переопределяет этот метод и не имеет аннотации в своем собственном издании. Если @RemotableViewMethod не унаследован, а переопределение «отменяет» аннотацию, это объясняет тот симптом, который вы видите.

Обходной путь заключается в использовании двух макетов виджетов приложений и выборе того, который вы хотите (с или без ProgressBar ) при создании объекта RemoteViews при обновлении виджета приложения.

Я сделаю заметку, чтобы попытаться воспроизвести это, и, если я увижу то же самое, я отправлю сообщение об этом на трекер Android .