web-dev-qa-db-ja.com

プログラムによってwindowlightstatusbarプロパティを設定する

ご存じのとおり、次のコードを使用してwindowLightStatusBarをxmlから設定できます。

<item name="Android:windowLightStatusBar">true</item>

この属性をプログラムでtrueからfalseに、またはfalseからtrueに変更する必要があります。それを達成する方法はありますか?

10
Ali Gürelli

アイコンの色を変更したい場合に設定します

.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_‌​BAR);

デフォルトにリセットするには、これを設定します

.setSystemUiVisibility(0);

しかし、statusBarの背景色を変更したい場合は、これを使用します

getWindow.setStatusBarColor(ContextCompat.getColor(activity,R.color.my_statusbar_color));
12
Elias Fazel

これがオンとオフを切り替える正しい方法だと思います。

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);
}
6
Cheok Yan Cheng

この属性をクリアするには、次のコードを使用します。

window.clearFlags( View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR)
1
Licat Julius