Wie der Titel schon sagt, wie ändere ich die Farbe der Statusleistensymbole so, dass sie einen dunklen Farbton anstelle des Standardweiß haben?
AUS
ZU
Sazid
Wie der Titel schon sagt, wie ändere ich die Farbe der Statusleistensymbole so, dass sie einen dunklen Farbton anstelle des Standardweiß haben?
AUS
ZU
Sazid
Damit die Statusleistensymbole einen dunklen Farbton anstelle des standardmäßigen Weiß haben, fügen Sie das folgende Tag in Ihrer hinzu styles.xml
(genauer gesagt in values-v23/styles.xml
) Datei:
<item name="android:windowLightStatusBar" tools:targetApi="23">true</item>
Sie können das Flag auch zur Laufzeit ändern, indem Sie es auf any setzen View
:
View yourView = findViewById(R.id.your_view);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
if (yourView != null) {
yourView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
}
Wenn Sie die Änderungen zurücksetzen möchten, löschen Sie das Flag wie folgt:
yourView.setSystemUiVisibility(0);
Wenn Sie die programmatische Methode zum Einstellen der hellen Statusleiste verwenden, gibt es eine Möglichkeit, sie wieder in die normale dunkle Version zu ändern?
– Andreas
17. November 2015 um 3:50 Uhr
Wenn das nicht funktioniert, können Sie versuchen, die neu zu erstellen View
selbst, auf dem die Flagge gesetzt wurde. Für mich erstelle ich nur eine Fragment
wenn eine Einstellung geändert wird.
– Sazid
18. November 2015 um 12:44 Uhr
– Johannes Fehler
16. August 2016 um 7:10 Uhr
Um es wieder dunkel zu machen: rootView.setSystemUiVisibility(rootView.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
Leider verursacht dies ein merkliches Redraw-Flimmern für mich, alle Vorschläge dafür sind willkommen.
– NeilS
24. August 2016 um 17:33 Uhr
Warum wird diese Methode für eine Ansicht aufgerufen? Was ist yourView in diesem Fall? Hat jemand Erkenntnisse?
– Capt.Swag
22. Oktober 2016 um 11:30 Uhr
Jian Li
Unten ist ein Beispielcode, ändern Sie die Farbe der Statusleiste, wenn Sie zwischen Hoch- und Querformat wechseln. Hochformat: heller Balken, dunkles Symbol; Querformat: dunkler Balken, helles Symbol; Thema: “Theme.AppCompat.Light”
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
Window window = getWindow();
View decorView = window.getDecorView();
if(Configuration.ORIENTATION_LANDSCAPE == newConfig.orientation) {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
| View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
| View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN
| View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(Color.parseColor("#55000000")); // set dark color, the icon will auto change light
}
} else {
decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_VISIBLE|View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
window.setStatusBarColor(Color.parseColor("#fffafafa"));
}
}
}