Android Lollipop Set Status Bar Text Color


Answer :

You can not set the status bar text color by specifying any color explicitly

But you can try below alternative which is Added in API 23,

You can use "android:windowLightStatusBar" attribute in two ways

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

You can check above api in below link - https://developer.android.com/reference/android/R.attr.html#windowLightStatusBar


Here's a Java implementation of Gandalf458's answer.

/** 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)); } 

You can also do this at runtime. Here is an example for Mono.Android using the flag SystemUiVisibility. You have to do some bitwise operations to change the flag. Your application must be set to target API 23 or higher to compile with this flag.

//Android 6.0 introduced the ability to set a light colored text on the status bar //MyActivity needs to be changed to your activity  if(Android.OS.Build.VERSION.SdkInt >= Android.OS.BuildVersionCodes.M) {     int newUiVisibility = (int)MyActivity.Window.DecorView.SystemUiVisibility;      if(state == StatusBarState.Light)     {         //Dark Text to show up on your light status bar         newUiVisibility |= (int)Android.Views.SystemUiFlags.LightStatusBar;     }     else if(state == StatusBarState.Dark)     {         //Light Text to show up on your dark status bar         newUiVisibility &= ~(int)Android.Views.SystemUiFlags.LightStatusBar;     }      MyActivity.Window.DecorView.SystemUiVisibility = (Android.Views.StatusBarVisibility)newUiVisibility; }  public enum StatusBarState {     Light,     Dark } 

Comments

Popular posts from this blog

Are Regular VACUUM ANALYZE Still Recommended Under 9.1?

Can Feynman Diagrams Be Used To Represent Any Perturbation Theory?