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).

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?

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!

  • El botón de radio creado dinámicamente o CheckBox no utiliza el acento de color
  • Utilice el cuadro combinado Tema encima del diseño para elegir un diseño diferente o corrija las referencias de estilos del tema
  • Cambiar el color de la barra de estado al ingresar al modo de acción contextual
  • Cómo cambiar el estilo de pestaña en Android?
  • ¿Cómo muestra Froyo un cuadro de diálogo encima de la pantalla de inicio?
  • Cambiar y aplicar el tema en tiempo de ejecución en Android
  • Modificar el color de un androide drawable
  • Android ActionBar no cambia el color de fondo
  • Color del selector de lista de Android 4.4 Kit Kat
  • Cómo hacer referencia a un estilo en un tema personalizado
  • Cambiar el tema en java no cambia el color de fondo
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.