Comment faire pour définir le thème de indeterministic ProgressBar dans ProgressDialog dans Android
J'ai un Android (sur A2.2) application avec le thème défini:
<style name="ProgressBar"> parent="@android:style/Widget.ProgressBar">
<item name="android:indeterminateDrawable">@drawable/progress_medium</item>
</style>
<style name="AlertDialog" parent="@android:style/AlertDialog">
<item name="android:fullDark">@drawable/bgr_alert</item>
</style>
<style name="MyTheme" parent="@android:style/Theme.Light.NoTitleBar">
<item name="android:alertDialogStyle">@style/AlertDialog</item>
<item name="android:progressBarStyle">@style/ProgressBar</item>
</style>
où "progress_medium' drawable est mon perso (bleu) progressbar et "bgr_alert' est personnalisé (blanc) à l'arrière-plan.
Quand je afficher la boîte de dialogue (application du thème est "MyTheme')
@Override
protected Dialog onCreateDialog(int id) {
progressDialog = new ProgressDialog(this);
progressDialog.setCancelable(false);
progressDialog.setIndeterminate(true);
return progressDialog;
}
la boîte de dialogue qui s'affiche contient personnaliser l'arrière-plan (blanc), mais le indeterministic progressBar n'est pas visible.
D'autre part, si j'ai mis du progrès dessinés manuellement:
progressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.progress_medium));
tout est parfait - arrière-plan personnalisé et personnalisé des progrès dessinés.
Tout soupçon, pourquoi la progressBar drawable n'est pas définie implicitement par thème?
OriginalL'auteur Pavel P | 2010-11-12
Vous devez vous connecter pour publier un commentaire.
Ok, j'ai eu ma réponse. Le problème est que Android progress_dialog.xml mise en page contient explicite de style pour la ProgressBar:
J'ai donc de faire le réglage manuel (comme décrit ci-dessus) ou le faire totalement boîte de dialogue personnaliser.
OriginalL'auteur Pavel P
J'ai eu ce problème et a été vraiment dur de trouver la solution.
Je pense que vous utilisez, dans votre définition de MyTheme android:background:
J'ai fait la même erreur, nous devrions utiliser android:windowBackground et lui donner une couleur ou un drawable. De cette façon, les dialogues ne seront pas touchés par votre arrière-plan du thème.
Laissez-moi savoir si cette solution fonctionne pour vous!
OriginalL'auteur Tano