首页 > 解决方案 > Android - 更改片段时出现不同的状态栏问题

问题描述

我在Android上面临一个相当烦人的问题。

我有一个里面有 3 个片段的活动,所有片段都填满了屏幕。设计师对设备状态栏的外观非常具体,这就是他的要求:

WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS考虑到它们都必须是单个活动中的片段,并且我玩过诸如, windowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR, decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_FULLSCREEN,之类的标志,我到底该怎么做 decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE

但没有任何组合会产生良好的行为。从字面上看,我无法让它具有所需的外观。有时,一个片段有一个很好的状态栏,但如果我返回,状态栏在前一个片段上停止正常工作,依此类推。

有人可以教我如何做到这一点。

PS我不敢相信Android有时是一个令人失望的操作系统。处理状态栏的外观应该是单行的,易于使用,就像在 iOS 上一样......

标签: androidkotlinstatusbar

解决方案


只需在每个片段中使用它

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    Window window = getWindow();
    window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
    window.setStatusBarColor(Color.BLUE);
}

推荐阅读