From cb0984ed6fe526bbed6e57221e279b74f4ba3e54 Mon Sep 17 00:00:00 2001 From: sihoo Date: Tue, 22 Sep 2026 00:32:10 +0000 Subject: [PATCH] =?UTF-8?q?=EC=84=A0=EC=83=9D=EB=8B=98=20=ED=98=B8?= =?UTF-8?q?=EC=B6=9C=20=ED=99=94=EB=A9=B4=20=ED=8F=AD=20=EC=A0=9C=ED=95=9C?= =?UTF-8?q?=20+=20=EC=B6=9C=EC=84=9D=20=EB=8B=AC=EB=A0=A5=20=ED=81=AC?= =?UTF-8?q?=EA=B8=B0=20=EC=B6=95=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 넓은 화면에서 양옆으로 늘어나던 선생님 호출 내용을 가운데 최대 560 폭으로, 출석 달력은 최대 440 폭 + 칸 비율/간격을 줄여서 한눈에 보이게 했다. Co-Authored-By: Claude Sonnet 5 --- lib/ui/study_calendar_screen.dart | 19 +++++++++++++++---- lib/ui/teacher_call_screen.dart | 13 ++++++++++++- 2 files changed, 27 insertions(+), 5 deletions(-) diff --git a/lib/ui/study_calendar_screen.dart b/lib/ui/study_calendar_screen.dart index 9b1404d..5856a54 100644 --- a/lib/ui/study_calendar_screen.dart +++ b/lib/ui/study_calendar_screen.dart @@ -187,6 +187,12 @@ class _StudyCalendarScreenState extends State { ); } + /// 넓은 화면(웹 데스크톱)에서 내용이 양옆으로 늘어지지 않게 가운데 최대 440 폭으로 맞춘다. + double _sidePad(BuildContext context) { + final width = MediaQuery.of(context).size.width; + return ((width - 440) / 2).clamp(16.0, double.infinity); + } + @override Widget build(BuildContext context) { return ListenableBuilder( @@ -208,7 +214,12 @@ class _StudyCalendarScreenState extends State { body: _controller.isLoading ? const Center(child: CircularProgressIndicator()) : ListView( - padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), + padding: EdgeInsets.fromLTRB( + _sidePad(context), + 0, + _sidePad(context), + 16, + ), children: [ const Center(child: TitlePill('출석 달력')), const SizedBox(height: 16), @@ -269,9 +280,9 @@ class _StudyCalendarScreenState extends State { gridDelegate: const SliverGridDelegateWithFixedCrossAxisCount( crossAxisCount: 7, - mainAxisSpacing: 6, - crossAxisSpacing: 6, - childAspectRatio: 0.85, + mainAxisSpacing: 4, + crossAxisSpacing: 4, + childAspectRatio: 1.0, ), itemCount: leadingBlanks + daysInMonth, itemBuilder: (context, index) { diff --git a/lib/ui/teacher_call_screen.dart b/lib/ui/teacher_call_screen.dart index ccd8713..71a660d 100644 --- a/lib/ui/teacher_call_screen.dart +++ b/lib/ui/teacher_call_screen.dart @@ -71,6 +71,12 @@ class _TeacherCallScreenState extends State { ); } + /// 넓은 화면(웹 데스크톱)에서 내용이 양옆으로 늘어지지 않게 가운데 최대 560 폭으로 맞춘다. + double _sidePad(BuildContext context) { + final width = MediaQuery.of(context).size.width; + return ((width - 560) / 2).clamp(16.0, double.infinity); + } + @override Widget build(BuildContext context) { return ListenableBuilder( @@ -93,7 +99,12 @@ class _TeacherCallScreenState extends State { : RefreshIndicator( onRefresh: _controller.refresh, child: ListView( - padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), + padding: EdgeInsets.fromLTRB( + _sidePad(context), + 0, + _sidePad(context), + 16, + ), children: [ const Center(child: TitlePill('선생님 호출')), const SizedBox(height: 16),