Es gibt verschiedene Möglichkeiten, die Farbe der Statusleiste zu ändern.
1) Verwenden Sie die Datei styles.xml. Sie können das Attribut android: statusBarColor verwenden, um dies auf einfache, aber statische Weise zu tun.
Hinweis: Sie können dieses Attribut auch mit dem Material-Thema verwenden.
<?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) Sie können dies dynamisch mit der Methode setStatusBarColor (int) in der Window-Klasse ausführen. Beachten Sie jedoch, dass diese Methode nur für API 21 oder höher verfügbar ist. Überprüfen Sie dies also unbedingt, da Ihre App sonst auf niedrigeren Geräten abstürzt.
Hier ist ein Arbeitsbeispiel für diese Methode.
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));
}
Dabei ist primaryDark die 700-Tönung der Primärfarbe, die ich in meiner App verwende. Sie können diese Farbe in der Datei colours.xml definieren.
Probieren Sie es aus und lassen Sie mich wissen, wenn Sie Fragen haben. Ich hoffe es hilft.