ご存じのとおり、次のコードを使用してwindowLightStatusBar
をxmlから設定できます。
<item name="Android:windowLightStatusBar">true</item>
この属性をプログラムでtrueからfalseに、またはfalseからtrueに変更する必要があります。それを達成する方法はありますか?
アイコンの色を変更したい場合に設定します
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
デフォルトにリセットするには、これを設定します
.setSystemUiVisibility(0);
しかし、statusBarの背景色を変更したい場合は、これを使用します
getWindow.setStatusBarColor(ContextCompat.getColor(activity,R.color.my_statusbar_color));
これがオンとオフを切り替える正しい方法だと思います。
if (on) {
View view = getWindow().getDecorView();
view.setSystemUiVisibility(view.getSystemUiVisibility() | View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
} else {
View view = getWindow().getDecorView();
view.setSystemUiVisibility(view.getSystemUiVisibility() & ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}
この属性をクリアするには、次のコードを使用します。
window.clearFlags( View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR)