ProgressBar в AppWidget - PullRequest
       29

ProgressBar в AppWidget

7 голосов
/ 10 марта 2010

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

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

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

Это умышленно или это ошибка? Есть ли способ обойти эту проблему?

Ответы [ 2 ]

17 голосов
/ 25 августа 2011

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

12 голосов
/ 10 марта 2010

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

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

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

...