Положите прогрессBar на ActionBar
Я пытаюсь поставить неопределенный ProgressBar на actionBar. Я использовал 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?
Ответы
Ответ 1
ПРИМЕЧАНИЕ: Ниже приведена функциональность ниже в библиотеке поддержки.
Вам нужно позвонить
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);
в своей деятельности, когда вы хотите показать счетчик прогресса.
Ответ 2
В моей ситуации потребовалось обновить индикатор выполнения из фрагмента с помощью библиотеки поддержки Android версии 4.
В моей "MainActivity extends 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, но это то, что сработало для меня на основе вышеперечисленных сообщений. Надеюсь, это поможет.
Ответ 3
Я нашел самый простой способ показать прогресс точно так, как вам нужно. Я нашел его здесь
, Просто используйте один класс и поместите свой индикатор выполнения, где хотите.