没入型ステータス バーでは、ステータス バーの背景色と内部のアイコンの色が混ざって区別しにくいという問題が発生することがあります。たとえば、ステータス バーの背景色が白に設定されている場合、アイコンはも白いです。アイコンがきれいに表示されません。
これを解決するには、Activity の onCreate で次のメソッドを呼び出します。
public static void setDarkStatusIcon(Window window, boolean bDark) { if (window != null) { View DecorView = window.getDecorView(); if(decorView != null){ int vis =decoView.getSystemUiVisibility(); if(bDark) { //黒色のステータス バー アイコンを設定します vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } else{ //白色のステータス バー アイコンを設定します vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR; } DecorView.setSystemUiVisibility(vis); } } }
上の図では、システムのデフォルトでは白いステータス バー アイコンが表示されています。下の図では、このメソッドを呼び出した後、ステータス バーのアイコンが白ではなくなりました。ステータスバーの色で区別します