如何在启动画面中隐藏返回状态栏

时间:2021-02-28 09:18:57

标签: android-studio kotlin splash-screen

我在 theme.xml 文件中隐藏了状态栏和操作栏。但是我的启动画面有一个黑色的状态栏和导航栏。如何摆脱它。请分享您的想法。

<style
    name="SplashTheme"
    parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowFullscreen">true</item>
    <item name="windowActionBar">false</item>
    <item name="windowNoTitle">true</item>
    <item name="android:windowBackground">@drawable/splash_screen</item>
</style>

图片: enter image description here

2 个答案:

答案 0 :(得分:1)

您可以通过

隐藏状态栏
window.decorView.systemUiVisibility =  View.SYSTEM_UI_FLAG_FULLSCREEN 

导航栏可以隐藏

window.decorView.systemUiVisibility =  View.SYSTEM_UI_FLAG_HIDE_NAVIGATION

注意 - 当用户与屏幕交互时,导航栏会重新显示

您可以在 super.onCreate 之前的 on create 中使用此代码

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        window.decorView.systemUiVisibility =  View.SYSTEM_UI_FLAG_FULLSCREEN or(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION)
super.onCreate(savedInstanceState)
}

阅读更多:https://developer.android.com/training/system-ui/immersive

答案 1 :(得分:0)

override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)
        setContentView(R.layout.activity_splash)

        Handler(Looper.getMainLooper()).postDelayed({
            startActivity(Intent(this@SplashActivity,MainActivity::class.java))
            finish()
            window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
        },2000)
    }

//用这个来隐藏你活动的状态栏
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)

//使用它来为您剩余的活动重新启用状态栏,否则它不会显示在所有活动中

window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)