在Android M中,我们可以使状态栏图标变暗.为此,我们可以在主题的xml中指定属性:
<item name="android:windowLightStatusBar">true</item>
Run Code Online (Sandbox Code Playgroud)
或者我们使用以下代码在运行时设置它:
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);
}
Run Code Online (Sandbox Code Playgroud)
它实际上工作正常.但问题是如何在运行时将状态栏模式正确设置为黑暗?
我已经尝试过那些变种:
// 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);
Run Code Online (Sandbox Code Playgroud)
那么如何才能以正确的方式完成?
user-interface android android-statusbar android-6.0-marshmallow