首页 > 解决方案 > 从另一个应用程序切换回应用程序以及截屏时导航栏不会重新隐藏?

问题描述

所以我正在开发一个全屏的应用程序。该代码确实工作得很好。但是当我切换到任何其他应用程序并返回它时,导航栏和状态栏都不会隐藏。当我截屏时也会发生这种情况。

这是一个预览: 问题预览

回来,这是我编写的代码:

private fun funcFullScreen() {
        window.decorView.systemUiVisibility = (View.SYSTEM_UI_FLAG_IMMERSIVE
                or View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
                or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
                or View.SYSTEM_UI_FLAG_FULLSCREEN
                or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)
    }

我只是简单地调用这样的函数funcFullScreen()

我试过什么?

1]androidFocusableInTouchMode="true"

2] 我也尝试添加 onWindowFocusChange 东西,但这让我又头疼了,当我在我的应用程序本身中切换活动时,导航栏会出现一两秒钟。解决这个问题似乎很困难,我已经尝试了互联网上所有可能的解决方案。

有什么办法可以解决这个问题?由于我对 Java 或 Kotlin 都很好,我的应用程序由两者组成(Java 中的一些活动,而 Kotlin 中的其他活动)并且都受到这个问题的影响。

3]还尝试在onResume中添加代码,这在我从另一个应用程序切换回来时有效,但在我截屏时无效。

标签: androidkotlinfullscreen

解决方案


所以基本上我认为你是在该活动的 onCreate() 方法中编写所有代码,当你转到另一个应用程序时,它的活动屏幕默认显示状态栏和导航栏,然后你再次回来然后你没有得到在 onCreate() 中回调,而不是在 onResume() 中获取它,因此您需要将 OnResume() 中的代码从 onCreate() 移动,以便在您再次返回此屏幕时调用它。


推荐阅读