Cambiar el color de la barra de estado con AppCompat ActionBarActivity

En mi una actividad cambio el color de la barra de herramientas usando la Palette pero en los dispositivos 5.0 usando ActionBarActivity el color de la status bar es el color de mi colorPrimaryDark en mi tema de la actividad así que tengo 2 color muy diferente y no parece bueno.

Me doy cuenta de que en 5.0 puede utilizar Window.setStatusBarColor() pero ActionBarActivity no tiene esto.

Así que mi pregunta está en 5.0 ¿cómo puedo cambiar el color de la barra de estado con ActionBarActivity ?

5 Solutions collect form web for “Cambiar el color de la barra de estado con AppCompat ActionBarActivity”

No estoy seguro de entender el problema.

Si desea cambiar el color de la barra de estado de forma programática (y siempre que el dispositivo tenga Android 5.0), puede utilizar Window.setStatusBarColor() . No debería hacer una diferencia si la actividad se deriva de Activity o ActionBarActivity .

Solo trata de hacer:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.BLUE); } 

Acabo de probar esto con ActionBarActivity y funciona bien.


Nota: Configurar el flag FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS programática no es necesario si el archivo de estilos values-v21 ya lo ha establecido, a través de:

  <item name="android:windowDrawsSystemBarBackgrounds">true</item> 

Hay varias formas de cambiar el color de la barra de estado.

1) Usar el styles.xml. Puede utilizar el atributo android: statusBarColor para hacer esto de forma fácil pero estática.

Nota: También puede utilizar este atributo con el tema Material.

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="AppTheme.Base"> <item name="android:statusBarColor">@android:color/transparent</item> </style> </resources> 

2) Puede hacerlo dinámicamente usando el método setStatusBarColor (int) en la clase Window. Pero recuerde que este método sólo está disponible para API 21 o superior. Así que asegúrese de comprobar que, o su aplicación seguramente se bloqueará en los dispositivos más bajos.

Este es un ejemplo práctico de este método.

 if (Build.VERSION.SDK_INT >= 21) { Window window = getWindow(); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.setStatusBarColor(getResources().getColor(R.color.primaryDark)); } 

Donde primaryDark es el tono 700 del color primario que estoy usando en mi aplicación. Puede definir este color en el archivo colors.xml.

No dale una oportunidad y hágamelo saber si usted tiene alguna pregunta. Espero eso ayude.

No creo que el color de barra de estado se haya implementado en AppCompat todavía. Estos son los atributos que están disponibles:

  <!-- ============= --> <!-- Color palette --> <!-- ============= --> <!-- The primary branding color for the app. By default, this is the color applied to the action bar background. --> <attr name="colorPrimary" format="color" /> <!-- Dark variant of the primary branding color. By default, this is the color applied to the status bar (via statusBarColor) and navigation bar (via navigationBarColor). --> <attr name="colorPrimaryDark" format="color" /> <!-- Bright complement to the primary branding color. By default, this is the color applied to framework controls (via colorControlActivated). --> <attr name="colorAccent" format="color" /> <!-- The color applied to framework controls in their normal state. --> <attr name="colorControlNormal" format="color" /> <!-- The color applied to framework controls in their activated (ex. checked) state. --> <attr name="colorControlActivated" format="color" /> <!-- The color applied to framework control highlights (ex. ripples, list selectors). --> <attr name="colorControlHighlight" format="color" /> <!-- The color applied to framework buttons in their normal state. --> <attr name="colorButtonNormal" format="color" /> <!-- The color applied to framework switch thumbs in their normal state. --> <attr name="colorSwitchThumbNormal" format="color" /> 

(De \ sdk \ extras \ android \ support \ v7 \ appcompat \ res \ valores \ attrs.xml )

Pruebe esto, he usado esto y funciona muy bien con v21.

 <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light"> <item name="colorPrimaryDark">@color/blue</item> </style> 

Gracias por las respuestas anteriores, con la ayuda de aquellos, después de cierto R & D para la aplicación xamarin.android MVVMCross, a continuación trabajó

Bandera especificada para la actividad en el método OnCreate

 protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); this.Window.AddFlags(WindowManagerFlags.DrawsSystemBarBackgrounds); } 

Para cada MvxActivity, el tema se menciona como a continuación

  [Activity( LaunchMode = LaunchMode.SingleTop, ScreenOrientation = ScreenOrientation.Portrait, Theme = "@style/Theme.Splash", Name = "MyView" )] 

Mi SplashStyle.xml se ve como abajo

 <?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme.Splash" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:statusBarColor">@color/app_red</item> <item name="android:colorPrimaryDark">@color/app_red</item> </style> </resources> 

Y tengo V7 appcompact referido.

  • Administrar la barra de herramientas y el botón de retroceso del fragmento en android
  • Cómo proporcionar Navegación arriba con el botón de inicio de la barra de herramientas en la barra de herramientas v7
  • ¿Cómo obtener el botón "arriba" utilizado en la barra de herramientas?
  • La actividad no se cierra al hacer clic en el botón de la barra de herramientas
  • Bloquear desplazamiento junto con Expand / Collapse Collapsible Toolbar
  • ¿Cómo puedo utilizar un icono en lugar de un título en la barra de herramientas de Android?
  • Utilizar la barra de herramientas como barra de acción no infla el menú
  • Mostrar la información de herramientas debajo de los elementos de ActionBar
  • Icono personalizado en la barra de herramientas de Android
  • Establecer el título inToolBar de Fragment en Android
  • Cómo eliminar subrayado blanco en un widget de SearchView en la barra de herramientas Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.