Poner una barra de progreso en la barra de acción


Estoy tratando de poner una barra de progreso indeterminada en la barra de acción. Yo estaba usando un ActionView para poner el ProgressBar como Google+ aplicación por ejemplo.

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

El problema es que la barra de progreso se considera como un elemento y, por lo tanto, en un modo retrato Nexus S solo tengo otro elemento en la barra de acción, mientras que en Google+ puedo ver dos elementos más la barra de progreso. ¿Cómo es posible poner una progressbar usando android actionbar?

Author: Matroska, 2012-02-06

3 answers

NOTA: La siguiente funcionalidad está obsoleta en la Biblioteca de soporte.

Necesitas llamar a

requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)

En su onCreate() antes de configurar el layout de la actividad :

Por ejemplo

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

Si está utilizando la biblioteca de soporte reemplace requestWindowFeature con supportRequestWindowFeature

Y luego llamar

setProgressBarIndeterminateVisibility(true);

En su Actividad siempre que desee mostrar el progress spinner.

 166
Author: Kuffs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-11-16 09:51:55

Mi situación requería actualizar la barra de progreso de un Fragmento usando la versión 4 de la Biblioteca de Soporte de Android.

En mi "MainActivity extiende ActionBarActivity"como sugiere Jokeefe:

supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);

Antes

setContentView(R.layout.activity_main);

En la larga tarea de mi fragmento:

OnPreExecute

actionBarActivity.setSupportProgressBarIndeterminateVisibility(true);

OnPostExecute

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

No estoy seguro de si esto responde a la OP, pero esto es lo que funcionó para mí basado en los posts anteriores. Espero que esto ayude.

 0
Author: HostMyBus,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-23 20:37:41

He encontrado uno más fácil para mostrar el progreso exactamente cómo lo necesita . Lo encontré aquí . Solo tienes que usar una clase y colocar tu barra de progreso donde quieras.

 -1
Author: parambir singh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-02 03:14:36