flutter如何实现全屏
在Flutter开发中,如何实现全屏显示?我尝试使用SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky)但效果不太理想,有时候状态栏还是会闪现。请问有没有更稳定的方法可以让App在不同Android/iOS设备上都能完美全屏?需要兼顾横竖屏切换的情况。
2 回复
在Flutter中,使用SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky)可实现全屏。此方法隐藏状态栏和导航栏,用户滑动屏幕边缘可临时显示系统UI。
更多关于flutter如何实现全屏的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
在Flutter中实现全屏显示可以通过以下两种方式:
1. 使用 SystemChrome 设置全屏
import 'package:flutter/services.dart';
// 进入全屏模式
void enterFullScreen() {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersiveSticky);
}
// 退出全屏模式
void exitFullScreen() {
SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge);
}
// 在页面中使用
@override
void initState() {
super.initState();
enterFullScreen();
}
@override
void dispose() {
exitFullScreen();
super.dispose();
}
2. 使用 SystemUiOverlay 隐藏状态栏和导航栏
import 'package:flutter/services.dart';
// 隐藏状态栏和导航栏
void hideSystemUI() {
SystemChrome.setEnabledSystemUIMode(
SystemUiMode.manual,
overlays: [],
);
}
// 显示状态栏和导航栏
void showSystemUI() {
SystemChrome.setEnabledSystemUIMode(
SystemUiMode.manual,
overlays: SystemUiOverlay.values,
);
}
可用的 SystemUiMode 选项:
SystemUiMode.edgeToEdge- 正常模式SystemUiMode.immersive- 全屏,滑动显示系统UISystemUiMode.immersiveSticky- 全屏,短暂滑动显示系统UISystemUiMode.leanBack- 轻量级全屏
注意事项:
- 在页面退出时记得恢复系统UI
- 全屏模式在iOS和Android上的表现可能略有不同
- 建议在需要全屏的页面(如视频播放、游戏)中使用
选择适合你应用场景的方式即可实现全屏效果。

