Cómo establecer el tema para ProgressBar indeterminista en ProgressDialog en Android
Tengo una aplicación de Android (desarrollada en A2.2) con el siguiente tema definido:
<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>
Donde 'progress_medium' drawable es mi barra de progreso personalizada (azul) y 'bgr_alert' es fondo personalizado (blanco).
- app: el tema ahora está obsoleto
- Java.lang.RuntimeException Theme.Sherlock
- Cómo utilizar el tema del proveedor en la aplicación de Android
- Tema Programáticamente establecido. Cómo volver a cargar Actividad para aplicar
- Cuerdas Android dependientes del tema
Cuando muestro el diálogo (el tema de la aplicación es "MyTheme")
@Override protected Dialog onCreateDialog(int id) { progressDialog = new ProgressDialog(this); progressDialog.setCancelable(false); progressDialog.setIndeterminate(true); return progressDialog; }
El cuadro de diálogo que aparece contiene el fondo personalizado (blanco), pero el progreso indeterminista no es visible.
Por otro lado, si configuro manualmente el progreso:
progressDialog.setIndeterminateDrawable(getResources().getDrawable(R.drawable.progress_medium));
Todo es perfecto – fondo de encargo y progreso de encargo drawable.
Cualquier indicio, ¿por qué el progresoBar dibujable no se establece implícitamente por tema tema?
- ¿Por qué mi aplicación de Android no muestra el icono y el texto en ActionBar?
- Barra de estado de Android transparente cuando se utiliza AppTheme.NoActionBar
- Estilo de RecyclerView a nivel de tema
- LinearLayout no establece el atributo layout_height requerido
- Error al agregar tema personalizado a la aplicación
- No se establece el tema de Android
- AlertDialog Tema: ¿Cómo cambiar el color del texto del artículo?
- Cómo cambiar el color de texto del elemento de menú desbordamiento a un color diferente mediante el tema de la barra de acción de Sherlock
Ok, tengo mi respuesta. El problema es que el diseño de Progress_dialog.xml de Android contiene estilo explícito para ProgressBar:
<ProgressBar android:id="@android:id/progress" style="@android:style/Widget.ProgressBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:max="10000" android:layout_marginRight="12dip" />
Así que tengo que hacer el ajuste manual (como se describe anteriormente) o hacer completamente diálogo personalizado.
Tuve este problema y fue muy difícil encontrar la solución.
Creo que estás usando, en tu definición de MyTheme android: background:
<style name="MyTheme"> <item name="android:background">@color/white_color</item> ..... <item name=".....">value</item> </style>
He cometido el mismo error, debemos usar android: windowBackground y darle un color o un drawable. De esta forma, los diálogos no se verán afectados por el fondo del tema.
¡Déjeme saber si esta solución trabaja para usted!
- Cómo evitar que Eclipse cree fragment_main.xml
- Cómo cambiar android: layout_alignParentRight runtime by java code