如何在不使其全屏的情况下删除颤振闪屏状态栏的颜色覆盖?

Posted

技术标签:

【中文标题】如何在不使其全屏的情况下删除颤振闪屏状态栏的颜色覆盖?【英文标题】:How to remove flutter splash screen status bar's color overlay WITHOUT making it Fullscreen? 【发布时间】:2021-06-01 17:43:29 【问题描述】:

我想制作一个完美融合的初始屏幕,而不是全屏。我的意思是我想制作一个背景颜色与状态栏混合的启动画面。我成功地以正确的方式制作了启动屏幕(我的意思是通过编辑 android xml 文件)并使状态栏颜色与启动屏幕的背景颜色相同,但是有某种叠加灰色-在状态栏上显示几分之一秒的颜色。我什至无法在屏幕截图中捕捉到它。我尝试了不同的方法。将statusBarColor 设置为透明的SystemOverlay 调用不起作用,它只会更改在启动屏幕之后呈现的应用程序主题的状态栏颜色。我为我的启动主题尝试了不同的parent 属性(如Theme.Holo.NoTitleBar 和所有其他组),但问题仍然存在。然后我尝试在styles.xml 中使用item 风格。这是我尝试过的一堆项目(虽然不是一次全部)。

<item name="android:windowBackground">@drawable/launch_background</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowTranslucentStatus">false</item>
    <item name="android:windowActionBarOverlay">false</item>
    <item name="android:windowLightStatusBar">true</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:background">@android:color/transparent</item>
    <item name="android:windowDisablePreview">true</item>
    <item name="android:windowIsTranslucent">true</item>

如果您已成功移除覆盖物,请回答此问题。请不要仅仅凭猜测或您自己没有尝试过的东西给我希望。相信我,我一直在寻找这个,我只在他/她的主要问题的评论部分找到了一个有这个问题的人,但是这个人无法得到答案,所以我把它作为一个问题发布.也许我错过了它,所以如果这个问题在其他地方得到回答,请提供链接。提前谢谢!

【问题讨论】:

【参考方案1】:

你试过让状态栏颜色透明吗?

【讨论】:

是的,我有。它不像我期望的那样工作。 如果你让状态栏颜色透明应该可以工作,什么不工作?你有更多信息吗? 正如我所说,我能够将状态栏颜色更改为初始屏幕背景颜色的颜色。我不能做的和我要求的是如何删除每次应用启动时显示几秒钟的叠加层。【参考方案2】:

在styles.xml中:

    <item name="android:navigationBarColor">@android:color/transparent</item>
    <item name="android:statusBarColor">@android:color/transparent</item>
    <item name="android:windowDrawsSystemBarBackgrounds">true</item>

在 MainActivity.kt 中:

override fun onCreate(savedInstanceState: Bundle?) 
    WindowCompat.setDecorFitsSystemWindows(window, false)
    super.onCreate(savedInstanceState)

它对我有用。

【讨论】:

以上是关于如何在不使其全屏的情况下删除颤振闪屏状态栏的颜色覆盖?的主要内容,如果未能解决你的问题,请参考以下文章

Default.png 显示在状态栏区域下方,想要使其全屏显示

如何在不使项目变灰的情况下禁用 UITabBarItem

SDL 中的真正全屏

在没有全屏的情况下在 UIWebView 中播放 Youtube 视频

Android 实现沉浸式全屏

如何在不使当前视图颤动的情况下实现这种幻灯片效果