猛禽洛的程式筆記庫

[Android] 螢幕恆亮與全螢幕

全螢幕的方式隨著版本演變也一直有變化,這邊紀錄一下目前能通用的最方便方式:

onCreate()中進行控制

super.onCreate(savedInstanceState)
setContentView(R.layout.activity_test)
//螢幕恆亮
window.setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON)
//全螢幕,根據不同作業系統使用不同方式
@Suppress("DEPRECATION")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
    val controller = window.insetsController
    if(controller != null) {
        controller.hide(WindowInsets.Type.statusBars() or WindowInsets.Type.navigationBars())
        controller.systemBarsBehavior = WindowInsetsController.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
    }
} else {
    window.setFlags(
        WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN
    )
}

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *