Индикатор прогресса панели действий и кнопка обновления

Можно ли показать индикатор прогресса (тот, который отображается с помощью функции requestWindowFeature (Window.FEATURE_INDETERMINATE_PROGRESS) вместо кнопки обновления?

Идея заключается в том, чтобы работать с клиентом Gmail: когда не загружается кнопка обновления шоу и при загрузке отображается неопределенный счетчик вместо кнопки обновления

Solutions Collecting From Web of "Индикатор прогресса панели действий и кнопка обновления"

Да, вы можете сделать это легко таким образом.

private MenuItem refresh; . . . @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.options_menu, menu); // refresh menu item refresh = menu.findItem(R.id.refresh_option_item); return super.onCreateOptionsMenu(menu); } 

Вы должны получить свой пункт меню обновления, как указано выше, а затем вы можете включить прядение, как показано ниже:

 refresh.setActionView(R.layout.actionbar_indeterminate_progress); 

И когда задача будет завершена, вы можете отключить вращение, как показано ниже:

 refresh.setActionView(null); 

И, наконец, actionbar_indeterminate_progress.xml может выглядеть следующим образом:

 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="64dp" android:layout_height="wrap_content" android:gravity="center"> <ProgressBar android:layout_width="32dp" android:layout_height="32dp" android:layout_gravity="center" style="?android:attr/indeterminateProgressStyle" /> </FrameLayout> 

Вы можете попробовать следующее: поместите как кнопку обновления, так и неопределенный счетчик внутри FrameLayout , так что они уложены в плоскости z, отображаются в том же положении на экране. Тогда вам просто нужно сыграть с Видимостью. Когда вы хотите показать кнопку обновления, вы установите невидимый счетчик и кнопку на заметку. Когда вы хотите показать счетчик, установите его на видимое, а кнопка – на невидимое.