En utilisant le “cercle d'animation” dans une ImageView lors du chargement des trucs
Je suis actuellement en utilisant dans mon application une listview qui doivent peut-être une seconde pour être affiché.
Ce que je fais à l'aide de @id/android:vide propriété de la liste pour créer un "chargement" du texte.
<TextView android:id="@id/android:empty"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FF0000"
android:text="Loading..."/>
Maintenant, je voudrais le remplacer avec le cercle d'animation qui est utilisée dans un dialogue de chargement au lieu de ce texte, je suppose que vous savez tous ce que je veux dire:
Edit: je ne veux pas un dialogue. Je veux montrer que l'intérieur de ma mise en page.
Merci beaucoup pour votre aide!
Vous devez vous connecter pour publier un commentaire.
Suffit de mettre ce bloc de code xml dans votre activité de mise en page du fichier:
Et quand vous avez fini le chargement, l'appel de cette ligne:
Le résultat (et il tourne trop):
Vous pouvez le faire en utilisant le code xml suivant
Avec ce style
Pour l'utiliser, vous devez masquer vos éléments d'INTERFACE utilisateur par la définition de la visibilité de la valeur à DISPARU et chaque fois que les données sont chargées, appel
setVisibility(View.VISIBLE)
sur tous vos points de vue pour les restaurer. N'oubliez pas d'appelerfindViewById(R.id.loadingPanel).setVisiblity(View.GONE)
pour masquer l'animation de chargement.Si vous n'avez pas le chargement de l'événement/de fonction mais qui souhaitent tout simplement le panneau de chargement à disparaître au bout de x secondes, utiliser un Poignée pour déclencher le cacher/montrer.
findViewById(...).setVisibility(View.GONE)
ligne lorsque je tourne l'écran. Fonctionne comme un charme dans l'une orientation, mais aucune idée pourquoi cela pourrait être la rupture?findViewById(R.id.loadingPanel).setVisiblity(View.GONE)
dans la seconde activité? Il ne peut pas trouver leview
puisqu'il n'est passetContnetView()
méthode dans le 2e fragment de l'activité. Merci!Cela est généralement considéré comme une durée Indéterminée La Barre De Progression ou d'une durée Indéterminée boîte de Dialogue de Progression.
Combiner cela avec une Fil et un Gestionnaire pour obtenir exactement ce que vous voulez. Il y a un certain nombre d'exemples sur la façon de le faire via Google ou ici sur DONC. Je vous recommande fortement de passer du temps à apprendre comment utiliser cette combinaison de classes pour effectuer une tâche de ce genre. Il est extrêmement utile dans de nombreux types d'applications et vous donnera un bon aperçu de la façon dont les Threads et les Gestionnaires peuvent travailler ensemble.
Je vais vous aider à démarrer sur la façon dont cela fonctionne:
Le chargement de l'événement commence le dialogue:
Maintenant le fil fait le travail:
Enfin obtenir l'état de retour à partir du fil quand il est complet:
Si vous souhaitez ne pas gonfler un autre point de vue juste pour indiquer les progrès accomplis puis effectuez les opérations suivantes:
Android va prendre soin de la barre de progression de la visibilité.
Par exemple, dans
activity_main.xml
:Et dans
MainActivity.java
:}
Vous pouvez utiliser ce code de firebase github échantillons ..
Vous n'avez pas besoin de modifier dans les fichiers de mise en page ... il suffit de faire une nouvelle classe "BaseActivity"
Dans votre Activité que vous souhaitez utiliser la boîte de dialogue de progression ..
Avant/Après de la fonction, que de prendre le temps
Pour ceux en développement dans Kotlin, il y a un sweet méthode prévue par la Anko bibliothèque qui rend le processus de l'affichage d'une
ProgressDialog
un jeu d'enfant!Basée sur ce lien:
Cela fera apparaître une boîte de Dialogue de Progression avec la progression % affichée (pour laquelle vous devez passer le
init
paramètre permet également de calculer la progression).Il y a aussi le
indeterminateProgressDialog()
méthode, qui fournit la Filature Cercle d'animation indéfiniment jusqu'à ce licenciés:Crier à ce blog qui m'a conduit à cette solution.