SystemUiMode {
leanBack,
immersive,
immersiveSticky,
edgeToEdge,
manual,
}
这是一个关于系统UI模式的枚举(SystemUiMode),用于控制应用程序的全屏显示以及系统UI的交互方式。以下是每个模式的含义:
leanBack:在这个模式下,应用程序以全屏显示,状态栏和导航栏可以通过轻触屏幕的任何位置来显示。适用于SDK版本16或Android J及更高版本。对于在iOS上运行的应用程序,状态栏和主页指示器会被隐藏,以获得类似的全屏体验。点击屏幕会显示覆盖层,这个手势不会被应用程序接收。
immersive:在这个模式下,应用程序以全屏显示,状态栏和导航栏可以通过在屏幕边缘滑动手势来显示。适用于SDK版本19或Android K及更高版本。对于在iOS上运行的应用程序,状态栏和主页指示器会被隐藏,以获得类似的全屏体验。从屏幕边缘滑动手势会显示覆盖层。与SystemUiMode.immersiveSticky不同,这个手势不会被应用程序接收。
immersiveSticky:在这个模式下,应用程序以全屏显示,状态栏和导航栏可以通过在屏幕边缘滑动手势来显示。适用于SDK版本19或Android K及更高版本。对于在iOS上运行的应用程序,状态栏和主页指示器会被隐藏,以获得类似的全屏体验。从屏幕边缘滑动手势会显示覆盖层。与SystemUiMode.immersive不同,这个手势会被应用程序接收。
edgeToEdge:在这个模式下,应用程序以全屏显示,状态和导航元素会渲染在应用程序上方。适用于SDK版本29或Android 10及更高版本。对于在iOS上运行的应用程序,状态栏和主页指示器会可见。系统覆盖不会在这种模式下消失或重新出现,因为它们会永久显示在应用程序上方。
manual:在这个模式下,开发人员需要手动配置SystemUiOverlay。通过使用SystemChrome.setEnabledSystemUIMode方法,可以设置首选的覆盖。当启用SystemUiOverlay.top时,状态栏将在所有平台上保持可见。省略此覆盖将在iOS和Android上隐藏状态栏。当启用SystemUiOverlay.bottom时,Android和iOS应用程序的导航栏和主页指示器将保持可见。省略此覆盖将隐藏它们。省略两个覆盖将导致与SystemUiMode.leanBack相同的配置。
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge, overlays: []);