该应用以状态栏颜色开头:
背景为白色,文本为黑色。
进入模式弹出窗口时,状态栏将变为白色文本:
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
仍然没有运气。
答案 0 :(得分:0)
我没有用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));
它也应该自动更改文本颜色。
答案 1 :(得分:0)
您需要将decorView
的{{1}}设置为打开以下标志systemUiVisibility
。
以您的情况
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR