kotlin中的Android全屏切换
我正在尝试让我的android应用程序在全屏和非全屏模式之间切换。基于其他堆栈溢出的答案,我做了这个扩展来完成我需要的大部分工作kotlin中的Android全屏切换,android,kotlin,Android,Kotlin,我正在尝试让我的android应用程序在全屏和非全屏模式之间切换。基于其他堆栈溢出的答案,我做了这个扩展来完成我需要的大部分工作 fun AppCompatActivity?.toggleFullscreen(fullscreen: Boolean) { if (this == null) return val attrs = window.attributes if (fullscreen) { attrs.flags = attrs.flags or
fun AppCompatActivity?.toggleFullscreen(fullscreen: Boolean) {
if (this == null) return
val attrs = window.attributes
if (fullscreen) {
attrs.flags = attrs.flags or WindowManager.LayoutParams.FLAG_FULLSCREEN
} else {
attrs.flags = attrs.flags and WindowManager.LayoutParams.FLAG_FULLSCREEN.inv()
}
window.attributes = attrs
}
但这仍然将导航栏保留在屏幕底部,我尝试添加一些其他标志(通过将另一个或置于全屏标志之后),建议包括:
SYSTEM_UI_FLAG_HIDE_NAVIGATION
SYSTEM_UI_FLAG_IMMERSIVE_STICKY
但似乎都不起作用,我缺少什么吗?您可以使用此方法调用toggle fullscreen
fun toggleFullScreen() {
if (window.decorView.systemUiVisibility == View.SYSTEM_UI_FLAG_VISIBLE) {
window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN)
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY or View.SYSTEM_UI_FLAG_FULLSCREEN
} else {
window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_VISIBLE
}
}
有关更多详细信息,请参阅此链接;有关标志的详细信息,请参阅此链接