선생님 호출 화면 폭 제한 + 출석 달력 크기 축소

넓은 화면에서 양옆으로 늘어나던 선생님 호출 내용을 가운데 최대 560 폭으로,
출석 달력은 최대 440 폭 + 칸 비율/간격을 줄여서 한눈에 보이게 했다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-22 00:32:10 +00:00
co-authored by Claude Sonnet 5
parent e8b375a18c
commit cb0984ed6f
2 changed files with 27 additions and 5 deletions
+15 -4
View File
@@ -187,6 +187,12 @@ class _StudyCalendarScreenState extends State<StudyCalendarScreen> {
);
}
/// 넓은 화면(웹 데스크톱)에서 내용이 양옆으로 늘어지지 않게 가운데 최대 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<StudyCalendarScreen> {
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<StudyCalendarScreen> {
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) {