沉浸式状态栏时,Activity加载了多个Fragment,每个Fragment的 顶部背景色不同,
需要根据背景色的深浅,设置状态栏图标和文字的颜色。
var flag = false//方便测试,可根据实际情况修改private fun setStatusBar() {if (flag) {// 实现状态栏图标和文字颜色为暗色Log.d("caowj", "暗")window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR} else {Log.d("caowj", "亮")// 实现状态栏图标和文字颜色为亮色window.decorView.systemUiVisibility =View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN and View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR.inv()}flag = !flag}
/*** 判断颜色深浅的方法* @param color Int* @return Boolean*/fun isDarkBackground(color: Int): Boolean {return ColorUtils.calculateLuminance(color) < 0.5}