Im Android M haben wir die Möglichkeit, Statusleisten-Icons dunkel zu machen. Dazu müssen wir Attribut in dem Thema des xml angeben:Android M Light und Dark Statusleiste programmgesteuert - wie macht man es wieder dunkel?
<item name="android:windowLightStatusBar">true</item>
oder wir Katze setzt es zur Laufzeit mit diesem Code:
View someView = findViewById(R.id.some_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
someView.setSystemUiVisibility(someView.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
Und es funktioniert tatsächlich gut. Aber die Frage ist, wie man einen Statusbar-Modus zur Laufzeit richtig einstellt?
Ich habe bereits versucht, dass Varianten:
// Makes status bar mode dark, but also hides it along with all navigation views.
someView.setSystemUiVisibility(someView.getSystemUiVisibility() | ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// Does nothing
someView.setSystemUiVisibility(someView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
// Also does nothing
someView.setSystemUiVisibility(someView.getSystemUiVisibility()^View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
So, wie es in einem richtigen Weg getan werden kann?
Warum ist setSystemUiVisibility() eine Methode der View-Klasse? –
@ capt.swag Ich denke, es ist 'View view = window.getDecorView();'. –