Je parcourais le site des développeurs de Android et j'ai trouvé une classe nommée ContentLoadingProgressBar. En voyant ce cours, je me pose quelques questions: ce serait bien si quelqu'un répond à mes questions.
ProgressBar
et ContentLoadingProgressbar
?Pouvons-nous afficher/masquer cette barre de progression selon nos besoins?
Comment puis-je personnaliser le style de cette barre de progression?
Merci d'avance pour votre aide. Ce serait bien si quelqu'un l'expliquait à l'aide de codes et d'exemples. Merci.
Voici mes réponses!
Quelle est la différence entre Normal ProgressBar et ContentLoadingProgressbar?
ContentLoadingProgressbar
attend un minimum de temps avant d'être affiché avant d'afficher hide()
comme avec 0,5 seconde. Ainsi, même show()
est appelée, cela peut être rejeté avant d'apparaître sur l'écran.
Quelle est l'utilisation pratique de ContentLoadingProgressBar
Il empêche le scintillement très rapide que vous pourriez voir avec des implémentations "naïves".
Pouvons-nous afficher/masquer cette barre de progression selon nos besoins
Oui
Comment puis-je personnaliser ce progrèsBar
<Android.support.v4.widget.ContentLoadingProgressBar
Android:id="@+id/address_looking_up"
style="?android:attr/progressBarStyleLarge"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_gravity="center_horizontal"
Android:visibility="visible" />
remplacer le style par Android:theme
https://stackoverflow.com/a/38282149/5188159
Selon le docs :
ContentLoadingProgressBar implémente un ProgressBar qui attend un temps minimum pour être rejeté avant de s'afficher. Une fois visible, la barre de progression sera visible pendant un minimum de temps pour éviter les "flashs" dans l'interface utilisateur lorsqu'un événement peut prendre un temps largement variable (de aucun, à un montant perceptible par l'utilisateur)
Cela mentionne clairement que ce n'est pas différent d'un ProgressBar
normal. De plus, il s'agit d'un UI Tweak pour être précis. ie ContentLoadingProgressBar
n'apparaîtrait pas si hide()
est appelé en moins de 0.5s
après avoir exécuté show()
, empêchant ainsi le scintillement rapide dans le UI
. J'espère que ça aide.
Supposons que vous souhaitiez afficher une barre de progression pour une opération en arrière-plan qui peut prendre moins de 500 ms ou plus de 5 secondes.
progressBar.show()
Ensuite, vous démarrez votre opération en arrière-plan.Si votre opération d'arrière-plan est terminée dans les 500 ms. Ensuite, vous appelez progressBar.hide()
L'utilisateur verra maintenant un scintillement de la barre de progression apparaître et disparaître en une fraction de seconde.
Présentation ContentLoadingProgressBar:
Lorsque vous utilisez cette barre de progression, elle attendra un temps minimum avant d'afficher la boîte de dialogue de progression. Ce qui signifie que si le temps entre show()
appel et hide()
appel est inférieur à ce temps minimum, alors il n'y aura pas de dialogue à afficher à l'utilisateur.