Je suis tombé sur ce qui ProgressDialog
est maintenant obsolète. Quelle serait une alternative à utiliser à la place de cela en dehors ProgressBar
. J'utilise la version 2.3.3 d'Android Studio.
ProgressDialog progressDialog=new ProgressDialog(this);
progressDialog.show();
Réponses:
Oui,
API level 26
c'est déprécié. Au lieu de cela, vous pouvez utiliserprogressBar
.Pour le créer par programme:
Obtenez d'abord une référence à la disposition racine
ou
Ajoutez ensuite la barre de progression
Pour afficher la barre de progression
Pour masquer la barre de progression
Pour désactiver l'interaction utilisateur, il vous suffit d'ajouter le code suivant
Pour récupérer l'interaction utilisateur, il vous suffit d'ajouter le code suivant
Juste pour référence future, changez le
android.R.attr.progressBarStyleSmall
enandroid.R.attr.progressBarStyleHorizontal
.Le code ci-dessous ne fonctionne que ci-dessus
API level 21
Pour le créer via xml:
Dans votre activité
Afficher / masquer la barre de progression est le même
Voici un exemple d'image de ce à quoi il ressemblerait:
Pour plus de détails:
1. Référence un
2. Référence deux
la source
vous pouvez utiliser
AlertDialog
leProgressDialog
code ci-dessous pour leProgressDialog
. Cette fonction que vous devez appeler chaque fois que vous affichez une boîte de dialogue de progression.Code:
Production:
la source
AlertDialog
ne devrait pas être utilisé ici.Il est obsolète en
Android O
raison de laGoogle
nouvelle norme d'interface utilisateurla source
Vous pouvez simplement concevoir une interface xml pour votre barre de progression et la passer en vue à un AlertDialog, puis afficher ou fermer la boîte de dialogue à tout moment.
progress.xml
Le code code qui affiche la boîte de dialogue de progression. Copiez simplement ce code et collez-le dans votre fragment.
Ensuite, appelez simplement la méthode chaque fois que vous souhaitez afficher le dialogue de progression et passez true comme argument pour l'afficher ou false pour fermer la boîte de dialogue.
la source
this
, afin qu'elle ressemble à ceciAlertDialog.Builder builder = new AlertDialog.Builder(this);
. Assurez-vous de copier le bon code.layout_toEndOf
peut être retiré car pas pourLinearLayout
ProgressBar est très simple et facile à utiliser, j'ai l'intention de faire la même chose que la boîte de dialogue de progression simple. la première étape est que vous pouvez créer une disposition xml de la boîte de dialogue que vous souhaitez afficher, disons que nous nommons cette disposition
l'étape suivante consiste à créer AlertDialog qui affichera cette disposition avec ProgressBar
maintenant tout ce qui reste est d'afficher et de masquer cette boîte de dialogue dans nos événements de clic comme celui-ci
et c'est tout, cela devrait fonctionner, comme vous pouvez le voir, il est extrêmement simple et facile d'implémenter ProgressBar au lieu de ProgressDialog. vous pouvez maintenant afficher / fermer cette boîte de dialogue dans Handler ou ASyncTask, selon vos besoins
la source
progress_dialog.show();
pourbuilder.show();
. Je vous remercie.show()
/dismiss()
, mais je ne l'ai pas misbuilder.show()
parce que pour le rejeter, nous devions fairedialog.dismiss()
ce qui est un peu déroutant pour quelqu'un qui aime garder son code simple et facile à comprendre, et aussi carbuilder.show()
retourne unAlertDialog
objet, et nous devrons enregistrer cette référence commeAlertDialog dialog = builder.show();
alorsdialog.dismiss()
, il est plus facile d'avoir unbuilder.create()
retour dans unAlertDialog
objet, puis d'utiliser cet objet pour afficher et masquer la boîte de dialogueOui, ProgressDialog est obsolète mais Dialog ne l'est pas.
Vous pouvez gonfler votre propre fichier XML (contenant une barre de progression et un texte de chargement) dans votre objet de dialogue, puis l'afficher ou le masquer à l'aide des fonctions
show()
etdismiss()
. Voici un exemple (Kotlin):Classe ProgressDialog :
XML
Dans votre code : faites simplement
var dialog = ProgressDialog.progressDialog(context)
Montrer:
dialog.show()
Cacher:
dialog.dismiss()
la source
Eh bien, si vous voulez vraiment aller à l'encontre de leur volonté, vous pouvez toujours utiliser Sweet Alert Dialog ou en créer un vous-même.
Code Java:
la source
HideProgress
ne fait rien.ProgressBar est la meilleure alternative pour ProgressDialog. Un élément d'interface utilisateur qui indique la progression d'une opération.
Pour plus d'informations, consultez ce document Google: https://developer.android.com/reference/android/widget/ProgressBar.html
la source
Vous n'avez pas besoin d'importer de bibliothèque personnalisée.
Je préfère utiliser le moderne
AlertDialog
, c'est donc la version Kotlin pour l'excellente réponse publiée par Kishan Donga dans cette page.Code Kotlin:
Usage:
Production:
la source
view!!.context
Comme mentionné sur la page de documentation, l'alternative est
ProgressBar
.ProgressDialog
Le look peut être reproduit en plaçant unProgressBar
dans unAlertDialog
.Vous pouvez toujours l'utiliser, mais Android ne veut pas que vous l'utilisiez, c'est pourquoi il est obsolète. Vous devriez donc envisager de résoudre votre problème d'une autre manière, comme intégrer un
ProgressBar
dans votreLayout
.la source
fait référence à des fonctions ou des éléments qui sont en train d'être remplacés par des plus récents."Deprecated"
Avantage
Je dirais personnellement que cela
ProgressBar
a l'avantage sur les deux.ProgressBar
est un élément d'interface utilisateur qui indique la progression d'une opération. Affichez les barres de progression à un utilisateur de manière non interruptive . Affichez la barre de progression dans l'interface utilisateur de votre application.la source
J'utilise DelayedProgressDialog de https://github.com/Q115/DelayedProgressDialog Il fait la même chose que ProgressDialog avec l'avantage supplémentaire d'un délai si nécessaire.
Son utilisation est similaire à ProgressDialog avant Android O:
la source
Configuration Gradle
Ajoutez la dépendance suivante au module / build.gradle:
Comment l'utiliser?
L'utilisation est similaire à ProgressDialog d'origine
NB : Vous devez remplacer les activités
onBackPressed()
Implémentation Java8:
Implémentation de Kotlin:
la source
Peut-être que ce guide pourrait vous aider.
Habituellement, je préfère créer des AlertDialogs personnalisés avec des indicateurs. Il résout des problèmes tels que la personnalisation de la vue de l'application.
la source
Cela peut aider d'autres personnes.
De nombreuses applications populaires ont une approche différente pour montrer la progression de quelque chose comme une demande réseau, le chargement de fichiers, etc. Le spinner de chargement n'affiche pas la quantité de contenu chargé ou restant à charger. Il y a une période d'incertitude qui est mauvaise dans la perspective de l'UI / UX. De nombreuses applications populaires (Facebook, Linkedin, etc.) ont résolu ce problème en affichant d'abord l'interface utilisateur nue. Ensuite, le contenu chargé est progressivement rempli à l'écran.
J'ai utilisé le miroitement de mes applications pour résoudre ce problème.
Il y a un bon article à ce sujet qui sera bénéfique pour d'autres personnes
la source
Dans la boîte de dialogue de progression, l'utilisateur ne peut effectuer aucun type de travail. Tous les processus d'arrière-plan sont arrêtés pendant la boîte de dialogue de progression. Il est donc conseillé d'utiliser la barre de progression au lieu de la boîte de dialogue de progression.
la source
Vous pouvez utiliser SpotDialog en utilisant la bibliothèque wasabeef vous pouvez trouver le tutoriel complet à partir du lien suivant:
la source