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

넓은 화면에서 양옆으로 늘어나던 선생님 호출 내용을 가운데 최대 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 @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListenableBuilder( return ListenableBuilder(
@@ -208,7 +214,12 @@ class _StudyCalendarScreenState extends State<StudyCalendarScreen> {
body: _controller.isLoading body: _controller.isLoading
? const Center(child: CircularProgressIndicator()) ? const Center(child: CircularProgressIndicator())
: ListView( : ListView(
padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), padding: EdgeInsets.fromLTRB(
_sidePad(context),
0,
_sidePad(context),
16,
),
children: [ children: [
const Center(child: TitlePill('출석 달력')), const Center(child: TitlePill('출석 달력')),
const SizedBox(height: 16), const SizedBox(height: 16),
@@ -269,9 +280,9 @@ class _StudyCalendarScreenState extends State<StudyCalendarScreen> {
gridDelegate: gridDelegate:
const SliverGridDelegateWithFixedCrossAxisCount( const SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 7, crossAxisCount: 7,
mainAxisSpacing: 6, mainAxisSpacing: 4,
crossAxisSpacing: 6, crossAxisSpacing: 4,
childAspectRatio: 0.85, childAspectRatio: 1.0,
), ),
itemCount: leadingBlanks + daysInMonth, itemCount: leadingBlanks + daysInMonth,
itemBuilder: (context, index) { itemBuilder: (context, index) {
+12 -1
View File
@@ -71,6 +71,12 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
); );
} }
/// 넓은 화면(웹 데스크톱)에서 내용이 양옆으로 늘어지지 않게 가운데 최대 560 폭으로 맞춘다.
double _sidePad(BuildContext context) {
final width = MediaQuery.of(context).size.width;
return ((width - 560) / 2).clamp(16.0, double.infinity);
}
@override @override
Widget build(BuildContext context) { Widget build(BuildContext context) {
return ListenableBuilder( return ListenableBuilder(
@@ -93,7 +99,12 @@ class _TeacherCallScreenState extends State<TeacherCallScreen> {
: RefreshIndicator( : RefreshIndicator(
onRefresh: _controller.refresh, onRefresh: _controller.refresh,
child: ListView( child: ListView(
padding: const EdgeInsets.fromLTRB(16, 0, 16, 16), padding: EdgeInsets.fromLTRB(
_sidePad(context),
0,
_sidePad(context),
16,
),
children: [ children: [
const Center(child: TitlePill('선생님 호출')), const Center(child: TitlePill('선생님 호출')),
const SizedBox(height: 16), const SizedBox(height: 16),