W Androidzie M mamy możliwość, aby ikony paska stanu były ciemne. Aby to zrobić, że możemy określić atrybut XML motywu:Programowo wyświetlany pasek statusu M Light and Dark systemu Android - jak sprawić, by znów było ciemno?
<item name="android:windowLightStatusBar">true</item>
albo my cat ustawić go przy starcie z tym kodem:
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);
}
I to faktycznie działa dobrze. Pytanie brzmi, jak poprawnie ustawić tryb paska stanu na ciemny w czasie wykonywania?
Próbowałem już, że warianty:
// 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);
Więc jak można to zrobić w odpowiedni sposób?
Dlaczego metoda setSystemUiVisibility() jest metodą klasy View? –
@ capt.swag Myślę, że jest 'View view = window.getDecorView();'. –