generated from ttipo/project-base
c21fbbd973
실기기(Android 16)에서 확인했다. Android 15 부터 앱이 화면 끝까지 그려지는데, 목록에 여백을 직접 준 화면은 시스템 여백이 빠져 마지막 출처 줄이 내비게이션 바에 가렸다 (장소 상세 · 행사 상세 · 행사 목록). 장소 상세는 사진 위에서 상태 표시줄 글자가 검은색이라 잘 안 보였고, 내리면 본문 제목이 상태 표시줄과 겹쳤다. 사진 위에서는 흰 글자와 위쪽 그늘을 두고, 사진을 지나면 흰 제목 줄 (뒤로 · 장소 이름)을 깐다. 상단 바가 없는 화면의 기본값(검은 글자)은 앱 뿌리에서 정한다. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
35 lines
1.4 KiB
Dart
35 lines
1.4 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:flutter/services.dart';
|
|
import 'package:flutter_riverpod/flutter_riverpod.dart';
|
|
|
|
import 'package:wandergo/core/l10n/l10n.dart';
|
|
import 'package:wandergo/core/l10n/locale_provider.dart';
|
|
import 'package:wandergo/core/router/app_router.dart';
|
|
import 'package:wandergo/core/theme/app_theme.dart';
|
|
import 'package:wandergo/core/theme/system_bars.dart';
|
|
|
|
/// 앱 뿌리 — 테마 · 언어 · 화면 이동
|
|
class WanderGoApp extends ConsumerWidget {
|
|
const WanderGoApp({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context, WidgetRef ref) {
|
|
return MaterialApp.router(
|
|
onGenerateTitle: (context) => context.l10n.appTitle,
|
|
debugShowCheckedModeBanner: false,
|
|
theme: AppTheme.light(),
|
|
// null 이면 기기 언어. 지원하지 않는 언어는 supportedLocales 의 첫 항목(영어)
|
|
locale: ref.watch(appLocaleProvider),
|
|
supportedLocales: AppLocalizations.supportedLocales,
|
|
localizationsDelegates: AppLocalizations.localizationsDelegates,
|
|
routerConfig: ref.watch(routerProvider),
|
|
// 상단 바가 없는 화면의 상태 표시줄 기본값 — 흰 바탕이라 검은 글자.
|
|
// 사진 위처럼 다르게 보여야 하는 화면은 안쪽에서 AnnotatedRegion 으로 덮어쓴다
|
|
builder: (context, child) => AnnotatedRegion<SystemUiOverlayStyle>(
|
|
value: kStatusBarDark,
|
|
child: child ?? const SizedBox.shrink(),
|
|
),
|
|
);
|
|
}
|
|
}
|