Поместите индикатор прогресса на панель действий - PullRequest
51 голосов
/ 06 февраля 2012

Я пытаюсь добавить неопределенный ProgressBar на панель действий.Я использовал actionView, чтобы поместить прогрессбар, например, в приложение Google+.

<item
    android:id="@+id/menu_progress"
    android:actionLayout="@layout/action_progress"
    android:menuCategory="container"
    android:showAsAction="always">
</item>

проблема в том, что индикатор выполнения рассматривается как элемент, и поэтому в портретном режиме Nexus S у меня есть только один другой элементна панели действий в Google+ я вижу два элемента плюс индикатор выполнения.Как можно поставить прогрессбар с помощью панели действий андроид?

Ответы [ 3 ]

166 голосов
/ 06 февраля 2012

ПРИМЕЧАНИЕ: Функциональность, представленная ниже, теперь не поддерживается в библиотеке поддержки.

Вам нужно позвонить

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)

в вашем onCreate() перед настройкой макета занятия :

, например

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
    ... // set layout etc

Если вы используете библиотеку поддержки , замените requestWindowFeature на supportRequestWindowFeature

А затем позвоните

setProgressBarIndeterminateVisibility(true);

в вашей активности, когда вы хотите показать счетчик прогресса.

0 голосов
/ 02 октября 2017

Я нашел самый простой способ показать прогресс именно так, как вам нужно. Я нашел это здесь , Просто используйте один класс и поместите ваш индикатор прогресса, где вы хотите.

0 голосов
/ 23 февраля 2015

В моей ситуации требовалось обновить индикатор выполнения из фрагмента с помощью библиотеки поддержки Android версии 4.

В моем «MainActivity расширяет ActionBarActivity», как предложено Jokeefe:

supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

перед

setContentView(R.layout.activity_main);

В длительной задаче моего фрагмента:

onPreExecute

actionBarActivity.setSupportProgressBarIndeterminateVisibility(true);

onPostExecute

actionBarActivity.setSupportProgressBarIndeterminateVisibility(false);
menu.clear();
actionBarActivity = (ActionBarActivity)getActivity();
actionBarActivity.supportInvalidateOptionsMenu();

Не уверен, что это отвечает на OP, но этоэто то, что сработало для меня на основе постов выше.Надеюсь, это поможет.

...