Android Lollipop Establecer color de texto de la barra de estado
Estoy intentando configurar el color del texto de la barra de estado en Android v21, pero no veo un método API para ello. Esto es lo que tengo hasta ahora como fondo.
MiActividad.java > onCreate:
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(getResources().getColor(R.color.white));
}
Obviamente, el texto blanco sobre fondo blanco no funcionará. estoy buscando algo como
window.setStatusBarTextColor(getResources().getColor(R.color.orange));
Aceptado
No puede configurar el color del texto de la barra de estado especificando ningún color explícitamente
Pero puedes probar la siguiente alternativa que se agrega en API 23,
Puede utilizar el atributo "android:windowLightStatusBar" de dos maneras
- "android:windowLightStatusBar" = true, el color del texto de la barra de estado será compatible (gris) cuando el color de la barra de estado sea claro
- "android:windowLightStatusBar" = false, el color del texto de la barra de estado será compatible (blanco) cuando el color de la barra de estado sea oscuro
<style name="statusBarStyle" parent="@android:style/Theme.DeviceDefault.Light">
<item name="android:statusBarColor">@color/status_bar_color</item>
<item name="android:windowLightStatusBar">false</item>
</style>
Puede consultar la API anterior en el siguiente enlace: https://developer.android.com/reference/android/R.attr.html#windowLightStatusBar
Aquí hay una implementación Java de la respuesta de Gandalf458 .
/** Changes the System Bar Theme. */
@RequiresApi(api = Build.VERSION_CODES.M)
public static final void setSystemBarTheme(final Activity pActivity, final boolean pIsDark) {
// Fetch the current flags.
final int lFlags = pActivity.getWindow().getDecorView().getSystemUiVisibility();
// Update the SystemUiVisibility dependening on whether we want a Light or Dark theme.
pActivity.getWindow().getDecorView().setSystemUiVisibility(pIsDark ? (lFlags & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR) : (lFlags | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR));
}