簡體   English   中英

自定義全屏行為

[英]Customize Full-Screen Behaviour

根據 android 文檔,我們可以通過在onCreate方法中添加以下代碼塊(在setContent{...}中,特別是如果您使用的是 Compose),使活動 go 全屏顯示

val windowInsetsController = ViewCompat.getWindowInsetsController(window.decorView)
windowInsetsController.systemBarsBehavior =
                    WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
windowInsetsController.hide(WindowInsetsCompat.Type.systemBars())
            

然而,這似乎只是隱藏了狀態欄上顯示的信息,僅用黑色條紋代替。

現在,我的問題是 - 我們如何修改該條紋的顏色,以便應用程序的 UI 似乎延伸到整個顯示屏?

我不知道從哪里開始,但我聽說伴奏者可能有與此相關的東西,但我認為最好在這里發布這個問題,這樣如果有人已經知道解決辦法,他們可能會分享,因為這將有助於社區。

除此之外,不涉及伴奏的解決方案也是受歡迎的,甚至可能是首選的。

作為參考,這是截至目前的 output

預習

注意到頂部的黑條了嗎? 這就是目標。

在你可以理解的結果后將其復制並粘貼到 onCreate 方法中

     if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
        val window: Window = window
        window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
        window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
        val decorView: View = window.getDecorView()
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
            decorView.systemUiVisibility =
                View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
        } else {
            decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        }
        window.setStatusBarColor(Color.TRANSPARENT)
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM