From 0db1f12b40ed743b85cf1d7d60ede01335aac8ac Mon Sep 17 00:00:00 2001 From: JiWoong Sul Date: Wed, 14 Jan 2026 19:12:35 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20Android=2015=20edge-to-edge=20=EB=AA=A8?= =?UTF-8?q?=EB=93=9C=20=EC=A7=80=EC=9B=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - immersiveSticky → edgeToEdge 모드 변경 - deprecated된 네비게이션바 색상 API 제거 - 시스템이 네비게이션바 색상 자동 처리 --- lib/main.dart | 9 +++------ lib/theme/adaptive_theme.dart | 11 +++-------- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index eac5ea8..af560b0 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -35,12 +35,9 @@ const bool enableAdMob = true; Future main() async { WidgetsFlutterBinding.ensureInitialized(); - // 시스템 네비게이션 바 숨김 (Immersive Sticky 모드) - // 스와이프 시 일시적으로 나타났다가 자동으로 사라짐 - SystemChrome.setEnabledSystemUIMode( - SystemUiMode.immersiveSticky, - overlays: [SystemUiOverlay.top], // 상태바만 유지 - ); + // Android 15 edge-to-edge 모드 활성화 + // 콘텐츠가 시스템 바 영역까지 확장됨 + SystemChrome.setEnabledSystemUIMode(SystemUiMode.edgeToEdge); // 구글 모바일 광고 SDK 초기화 (웹이 아니고, Android/iOS에서만) if (!kIsWeb && (Platform.isAndroid || Platform.isIOS) && enableAdMob) { diff --git a/lib/theme/adaptive_theme.dart b/lib/theme/adaptive_theme.dart index 798b229..001d6ef 100644 --- a/lib/theme/adaptive_theme.dart +++ b/lib/theme/adaptive_theme.dart @@ -305,9 +305,9 @@ class AdaptiveTheme { } /// 시스템 테마에 따른 상태바 스타일 적용 + /// Android 15+ edge-to-edge 호환: deprecated된 네비게이션바 색상 API 제거 static void applySystemUIOverlay(BuildContext context) { final brightness = Theme.of(context).brightness; - final isOled = Theme.of(context).scaffoldBackgroundColor == Colors.black; SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( statusBarColor: Colors.transparent, @@ -315,13 +315,8 @@ class AdaptiveTheme { brightness == Brightness.dark ? Brightness.light : Brightness.dark, statusBarBrightness: brightness == Brightness.dark ? Brightness.light : Brightness.dark, - systemNavigationBarColor: isOled - ? Colors.black - : (brightness == Brightness.dark - ? const Color(0xFF121212) - : Colors.white), - systemNavigationBarIconBrightness: - brightness == Brightness.dark ? Brightness.light : Brightness.dark, + // Android 15+: 네비게이션바 색상은 시스템이 자동 처리 + systemNavigationBarContrastEnforced: false, )); }