В Android M у нас есть возможность сделать иконки в строке состояния темными. Для этого мы можем указать атрибут в теме xml:
<item name="android:windowLightStatusBar">true</item>
ИЛИ мы можем установить его во время выполнения с помощью этого кода:
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);
}
И это на самом деле работает нормально. Но вопрос в том, как правильно установить режим строки состояния на темный во время выполнения?
Я уже попробовал эти варианты:
// 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);
Так как же это сделать правильно?