W jednym z moich działań zmieniłem kolor paska narzędzi za pomocą Palette
. Ale na 5,0 urządzeń wykorzystujących ActionBarActivity
ten status bar
kolor to kolor My colorPrimaryDark
w mojej działalności tematu więc mam 2 bardzo różne kolory i to nie wygląda dobrze.
Zdaję sobie sprawę, że w 5.0 można używać, Window.setStatusBarColor()
ale ActionBarActivity
tego nie ma.
więc moje pytanie dotyczy wersji 5.0, w jaki sposób mogę zmienić kolor paska stanu za pomocą ActionBarActivity
?
Odpowiedzi:
Nie jestem pewien, czy rozumiem problem.
Chcesz programowo zmienić kolor paska stanu (i pod warunkiem, że urządzenie ma Androida 5.0), możesz użyć
Window.setStatusBarColor()
. Nie powinno mieć znaczenia, czy działanie pochodzi z,Activity
czyActionBarActivity
.Po prostu spróbuj:
Właśnie to przetestowałem
ActionBarActivity
i działa dobrze.Uwaga: Ustawienie
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
flagi programowo nie jest konieczne, jeślivalues-v21
plik stylów już ją ustawił, poprzez:źródło
getWindow()
minSdkVersion
I / lubtargetSdkVersion
atrybuty<uses-sdk ...>
elementu).Istnieje wiele sposobów zmiany koloru paska stanu.
1) Za pomocą pliku styles.xml. Możesz użyć atrybutu android: statusBarColor, aby zrobić to w łatwy, ale statyczny sposób.
Uwaga: tego atrybutu można również używać z motywem Materiał.
2) Można to zrobić dynamicznie za pomocą metody setStatusBarColor (int) w klasie Window. Pamiętaj jednak, że ta metoda jest dostępna tylko dla API 21 lub nowszego. Więc pamiętaj, aby to sprawdzić, w przeciwnym razie Twoja aplikacja na pewno ulegnie awarii na niższych urządzeniach.
Oto działający przykład tej metody.
gdzie primaryDark to 700 tint koloru podstawowego, którego używam w mojej aplikacji. Możesz zdefiniować ten kolor w pliku colors.xml.
Spróbuj i daj mi znać, jeśli masz jakieś pytania. Mam nadzieję, że to pomoże.
źródło
clearFlags
napraw mój problemNie sądzę, aby kolor paska stanu został jeszcze zaimplementowany w AppCompat. Oto atrybuty, które są dostępne:
(Z \ sdk \ extras \ android \ support \ v7 \ appcompat \ res \ values \ attrs.xml )
źródło
Spróbuj tego, użyłem tego i działa bardzo dobrze z wersją 21.
źródło
Dzięki za powyższe odpowiedzi, z pomocą tych, po pewnych badaniach i rozwoju dla aplikacji xamarin.android MVVMCross, poniżej działało
Flaga określona dla działania w metodzie OnCreate
Dla każdego MvxActivity, motyw jest wymieniony poniżej
Mój plik SplashStyle.xml wygląda jak poniżej
I mam odniesienie do V7 appcompact.
źródło
[Wersja Kotlin] Stworzyłem to rozszerzenie, które sprawdza również, czy żądany kolor ma wystarczający kontrast, aby ukryć interfejs systemu, taki jak ikona stanu baterii, zegar itp., Więc zgodnie z tym ustawiamy interfejs systemu na biały lub czarny.
źródło
Stosowanie
in
Theme.AppCompat.Light.DarkActionBar
nie zadziałało dla mnie. Na czym polega sztuczka, dająccolorPrimaryDark
jak zwykle razem zandroid:colorPrimary
styles.xmli ustawienie
nie musiał ustawiać koloru paska stanu w kodzie.
źródło