该应用程序以状态栏颜色开头:
背景白色,文字是黑色的。
进入模态弹出屏幕时,状态栏会变为后退,并带有白色文本:
window?.setStatusBarColor(Color.BLACK);
activity?.window?.decorView?.systemUiVisibility = SYSTEM_UI_FLAG_LIGHT_NAVIGATION_BAR
作品!
接下来,在模态弹出屏幕关闭时,我希望状态栏恢复正常:
背景白色和黑色文本
没有运气。
我尝试了什么?这个:
window?.setStatusBarColor(Color.BLACK); // This really does work
activity?.window?.decorView?.systemUiVisibility = // Not sure what should be the value
状态栏背景确实会更改,但不会更改文本。不确定systemUiVisibility值应该是什么。
阅读https://developer.android.com/reference/android/view/View但没有找到任何合适的,尝试过
SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN,SYSTEM_UI_FLAG_LAYOUT_STABLE
仍然没有运气。
我不在Kotlin中编码,但以下代码片段可以解决问题
Window window = activity.getWindow();
// clear FLAG_TRANSLUCENT_STATUS flag:
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
// add FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS flag to the window
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
// finally change the color
window.setStatusBarColor(ContextCompat.getColor(activity,R.color.my_statusbar_color));
它也应该自动更改文本颜色。
你需要设置decorView
的systemUiVisibility
,以便在View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
上打开以下标志。
在你的情况下
activity?.window?.decorView?.systemUiVisibility = activity?.window?.decorView?.systemUiVisibility or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR