Festlegen Thema für indeterministic ProgressBar in ProgressDialog in Android
Ich habe ein Android (entwickelt auf der A2.2) app mit folgenden Thema definiert:
<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>
wo 'progress_medium' drawable ist meine eigene (blau) Statusanzeige und 'bgr_alert' benutzerdefinierte (weißen) hintergrund.
Wenn ich das Dialogfeld (Anwendung ist das Thema 'MyTheme')
@Override
protected Dialog onCreateDialog(int id) {
progressDialog = new ProgressDialog(this);
progressDialog.setCancelable(false);
progressDialog.setIndeterminate(true);
return progressDialog;
}
Dialogfeld, das auftaucht, enthält benutzerdefinierte hintergrund (weiß), aber die indeterministic progressBar nicht sichtbar ist.
Auf der anderen Seite, wenn ich die Fortschritte drawable manuell:
progressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.progress_medium));
alles perfekt ist - und benutzerdefinierten hintergrund, benutzerdefinierte Fortschritt drawable.
Irgendeinen Hinweis, warum der progressBar drawable nicht gesetzt ist, die implizit durch die des Themas?
InformationsquelleAutor Pavel P | 2010-11-12
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ok, ich habe meine Antwort. Das problem ist, dass Android ist progress_dialog.xml layout enthält explizite Stil für die ProgressBar:
Also muss ich entweder die manuelle Einstellung (wie oben beschrieben) oder etwas völlig eigenes Dialogfeld.
InformationsquelleAutor Pavel P
Ich hatte dieses problem und war wirklich schwer zu finden, die Lösung.
Ich denke, Sie sind mit, in Ihre definition von MyTheme android:hintergrund:
Ich habe den gleichen Fehler gemacht, wir sollten Sie nutzen android:windowBackground und geben Sie eine Farbe oder ein drawable. Diese Art der Dialoge nicht beeinträchtigt werden, die durch Ihre Design-hintergrund.
Lassen Sie mich wissen, wenn diese Lösung funktioniert für Sie!
InformationsquelleAutor Tano