Поставить прогрессбар на панели быстрого доступа


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

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

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

3   51   2012-02-06 12:42:19

3 ответа:

Примечание: функциональность ниже теперь устарела в библиотеке поддержки.

нужно позвонить

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);

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

моя ситуация потребовала обновления индикатора выполнения из фрагмента с помощью библиотеки поддержки 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, но это то, что сработало для меня на основе сообщений выше. Надеяться эта помощь.

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