Flutter 3.10.5应用状态栏默认隐藏问题求助
解决Flutter 3.10.5中状态栏显示异常及禁止全屏模式的问题
你的问题核心是应用默认进入全屏模式隐藏了状态栏,热重启时临时恢复,但页面导航后又被重置。以下是具体解决方法:
1. 全局强制状态栏显示并禁用全屏模式
在main函数初始化阶段直接配置系统UI样式,确保所有页面生效,不受页面是否有AppBar的影响:
import 'package:flutter/services.dart'; void main() { // 全局设置状态栏样式,确保图标和亮度符合需求 SystemChrome.setSystemUIOverlayStyle(const SystemUiOverlayStyle( statusBarIconBrightness: Brightness.dark, statusBarBrightness: Brightness.light, statusBarColor: Colors.transparent, // 按需设置状态栏背景色 )); // 禁用全屏模式,强制显示状态栏 SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge, overlays: [SystemUiOverlay.top] // 仅保留状态栏,若需要导航栏可添加SystemUiOverlay.bottom ); runApp(const MyApp()); }
2. 修正AppBarTheme的局限性
你之前在AppBarTheme中设置的systemOverlayStyle仅对包含AppBar的页面生效,无AppBar的页面会 fallback 到系统默认样式。全局配置后,无论页面是否有AppBar,状态栏都会保持显示。
3. 检查页面级的全屏设置
排查所有页面的initState或build方法,是否存在手动隐藏状态栏的代码,比如:
// 若有此类代码,删除或修改 SystemChrome.setEnabledSystemUIMode(SystemUiMode.immersive);
完成以上设置后,重新运行应用即可:默认状态下状态栏会正常显示,页面导航后也不会消失。
内容的提问来源于stack exchange,提问作者Ayan Dasgupta
相关产品推荐
相关产品推荐

