J'essaie de mettre une barre de progression indéterminée sur la barre d'action. J'utilisais une actionView pour mettre la barre de progression comme l'application Google+ par exemple.
<item
Android:id="@+id/menu_progress"
Android:actionLayout="@layout/action_progress"
Android:menuCategory="container"
Android:showAsAction="always">
</item>
le problème est que la barre de progression est considérée comme un élément et, par conséquent, sur un mode portrait Nexus S, je n'ai qu'un autre élément sur la barre d'action tandis que sur Google+, je peux voir deux éléments plus la barre de progression. Comment est-il possible de mettre une barre de progression en utilisant la barre d'action Android?
REMARQUE: La fonctionnalité ci-dessous est désormais déconseillée dans la bibliothèque de support.
Vous devez appeler
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
dans votre onCreate()
avant de définir l'agencement de l'activité :
par exemple.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
... // set layout etc
Si vous utilisez bibliothèque de support remplacez requestWindowFeature par supportRequestWindowFeature
Et puis appelez
setProgressBarIndeterminateVisibility(true);
sur votre activité chaque fois que vous souhaitez afficher le spinner de progression.
Ma situation nécessitait de mettre à jour la barre de progression à partir d'un fragment à l'aide de la Android Support Library version 4.
Dans mon "MainActivity étend ActionBarActivity" comme suggéré par Jokeefe:
supportRequestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
avant
setContentView(R.layout.activity_main);
Dans la tâche de longue haleine de mon fragment:
onPreExecute
actionBarActivity.setSupportProgressBarIndeterminateVisibility(true);
onPostExecute
actionBarActivity.setSupportProgressBarIndeterminateVisibility(false);
menu.clear();
actionBarActivity = (ActionBarActivity)getActivity();
actionBarActivity.supportInvalidateOptionsMenu();
Je ne sais pas si cela répond à l'OP mais c'est ce qui a fonctionné pour moi sur la base des messages ci-dessus. J'espère que cela t'aides.