如何在 Flutter 中隐藏 Android 的底部操作栏?
How do I hide Android's bottom action bar in Flutter?
我知道可以用下面的代码隐藏它。
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
但是当我点击屏幕时,底部的操作栏又出现了。
我该如何解决这个问题?非常感谢
这是flutter的一个bug;我们暂时无能为力:
https://github.com/flutter/flutter/issues/62412
解决方案可能是同时隐藏状态栏和导航栏
SystemChrome.setEnabledSystemUIOverlays([])
虽然在Flutter中没有办法直接隐藏。但是您可以通过调用本机 Android 方法来完成此操作,我已经尝试并验证了该方法的有效性。
private fun fullScreenCall() {
if (Build.VERSION.SDK_INT in 12..18) { // lower api
val v: View = this.window.decorView
v.systemUiVisibility = View.GONE
} else if (Build.VERSION.SDK_INT >= 19) {
//for new api versions.
val decorView: View = window.decorView
val uiOptions: Int = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
decorView.systemUiVisibility = uiOptions
}
}
我知道可以用下面的代码隐藏它。
SystemChrome.setEnabledSystemUIOverlays([SystemUiOverlay.top]);
但是当我点击屏幕时,底部的操作栏又出现了。 我该如何解决这个问题?非常感谢
这是flutter的一个bug;我们暂时无能为力:
https://github.com/flutter/flutter/issues/62412
解决方案可能是同时隐藏状态栏和导航栏
SystemChrome.setEnabledSystemUIOverlays([])
虽然在Flutter中没有办法直接隐藏。但是您可以通过调用本机 Android 方法来完成此操作,我已经尝试并验证了该方法的有效性。
private fun fullScreenCall() {
if (Build.VERSION.SDK_INT in 12..18) { // lower api
val v: View = this.window.decorView
v.systemUiVisibility = View.GONE
} else if (Build.VERSION.SDK_INT >= 19) {
//for new api versions.
val decorView: View = window.decorView
val uiOptions: Int = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
decorView.systemUiVisibility = uiOptions
}
}