Android DialogFragment barre de progression
J'ai cherché partout et je ne peux pas trouver une solution à ce problème.
Fondamentalement, j'ai un écran de connexion et je vais essayer d'obtenir un progrès spinner montrer alors qu'il est connecté au serveur (via un thread), et puis la rejeter après la connexion est réussie. Il a de travailler, tandis que l'évolution des orientations.
Je suis en utilisant DialogFragment
avec l'Android package de compatibilité pour faire une barre de progression (ne peut pas trouver toute la documentation sur elle, seulement pour base\boîte de dialogue d'alerte) parce que showDialog()
est obsolète maintenant. Droit maintenant, j'ai juste afficher un message personnalisé de la boîte de connexion spinner.
En Résumé:
- Comment puis-je configurer un Progrès spinner avec
DialogFragment
. - Comment puis-je le faire disparaître dans un autre thread, après les changements d'orientation.
Vous devez vous connecter pour publier un commentaire.
Je sais que c'est une vieille question, mais je veux partager beaucoup meilleure solution pour ce
En fonction du Développement Android Protip:
De Roman Nurik les états:
Pour montrer un progrès spinner, de substituer DialogFragment.onCreateDialog() dans votre boîte de dialogue fragment comme ça (pas besoin de surcharger
onCreateView()
):Que pour rejeter cette boîte de dialogue fragment de quelque part d'autre, vous aurez besoin d'obtenir une prise de
FragmentManager
(à partir de l'intérieur de votre prochaineFragmentActivity
ouFragment
) et d'appelerpopBackStack()
sur elle (si vous n'avez pas à faire toute autre fragment de la transaction dans l'intervalle).Si il n'y a plus d'étapes/fragment de transactions entre votre boîte de dialogue de progression fragment et de l'activité suivante, vous aurez probablement besoin l'un de l'autre
popBackStack(...)
des méthodes qui prennent un ID ou une étiquette à la pop tout en haut de votre boîte de dialogue de progression fragment hors de la pile.setMessage(int)
surProgressDialog
, cependant, de sorte que j'ai dû utilisersetMessage(String)
.DialogFragment
a undismiss
méthode qui peut être utilisée en faveur de sauter la pile de retour. JustefindFragmentByTag
, fonte àDialogFragment
etdismiss()
return
pour corriger cela:setCancelable(false)
de Cette façon, vous également refuser d'annuler le fragment qui détient la boîte de dialogue. Plus "exemple complet" (toujours sans prévenir annuler de fragment): gist.github.com/dhawalhshah/1355547ProgressDialog
était dépréciée de l'api de 26. La solution recommandée est d'utiliser unProgressBar
ou unNotification
: developer.android.com/reference/android/app/ProgressDialog.html