From 32203baffc37603289503aff148fabd3292e003d Mon Sep 17 00:00:00 2001 From: sihoo Date: Tue, 8 Sep 2026 09:38:56 +0900 Subject: [PATCH] =?UTF-8?q?=EC=8B=A4=EC=8B=9C=EA=B0=84=20=EC=B6=9C?= =?UTF-8?q?=EC=84=9D=20=ED=98=84=ED=99=A9:=20=EC=A0=9C=EB=AA=A9=20?= =?UTF-8?q?=EC=95=8C=EC=95=BD=EC=9D=84=20=EC=95=B1=EB=B0=94=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=82=AC=EC=9D=B4=EB=93=9C=EB=B0=94=20=EC=83=81?= =?UTF-8?q?=EB=8B=A8=EC=9C=BC=EB=A1=9C=20=EC=9D=B4=EB=8F=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 앱바 가운데 제목 대신, "전체 학생 수" 버튼 바로 위(사이드바 최상단)에 제목 알약을 두도록 변경. 모바일도 요약 카드 위로 동일하게 이동. Co-Authored-By: Claude Sonnet 5 --- lib/ui/teacher_attendance_page.dart | 45 +++++++++++++++++------------ 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/lib/ui/teacher_attendance_page.dart b/lib/ui/teacher_attendance_page.dart index 613159e..5f34682 100644 --- a/lib/ui/teacher_attendance_page.dart +++ b/lib/ui/teacher_attendance_page.dart @@ -205,29 +205,13 @@ class _TeacherAttendancePageState extends State { return Scaffold( backgroundColor: AppPalette.mist, - // 🪶 검정 배너 대신 가운데에 둥근 제목 알약만 띄우고, 나머지 기능은 전부 - // "자습실 시간 설정 메뉴"(런치패드 스타일 오버레이) 하나로 모은다. + // 🪶 검정 배너 대신, 제목 알약은 "전체 학생 수" 버튼 바로 위(사이드바/모바일 요약 위)에 둔다. + // 나머지 기능은 전부 "자습실 시간 설정 메뉴"(런치패드 스타일 오버레이) 하나로 모은다. // 폰에서는 사이드바가 없으니 여기 아이콘으로도 같은 메뉴를 열 수 있게 둔다. appBar: AppBar( backgroundColor: Colors.transparent, foregroundColor: AppPalette.ink, elevation: 0, - centerTitle: true, - title: Container( - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), - decoration: BoxDecoration( - color: AppPalette.ink, - borderRadius: BorderRadius.circular(999), - ), - child: const Text( - '실시간 출석 현황', - style: TextStyle( - color: Colors.white, - fontWeight: FontWeight.bold, - fontSize: 15, - ), - ), - ), actions: [ IconButton( icon: const Icon(Icons.more_horiz_rounded), @@ -260,6 +244,26 @@ class _TeacherAttendancePageState extends State { ); } + // 🪶 "실시간 출석 현황" 제목 알약. 사이드바/모바일 요약 바로 위에 둔다. + Widget _buildTitlePill() { + return Container( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), + decoration: BoxDecoration( + color: AppPalette.ink, + borderRadius: BorderRadius.circular(999), + ), + child: const Text( + '실시간 출석 현황', + textAlign: TextAlign.center, + style: TextStyle( + color: Colors.white, + fontWeight: FontWeight.bold, + fontSize: 15, + ), + ), + ); + } + // ----------------------------------------------------------------------- // 📱 모바일 레이아웃 (기존 카드 리스트) // ----------------------------------------------------------------------- @@ -267,6 +271,9 @@ class _TeacherAttendancePageState extends State { final groups = _controller.studentsByGrade; return Column( children: [ + const SizedBox(height: 12), + _buildTitlePill(), + const SizedBox(height: 12), _buildSummaryCards(total, checkedIn, absent), _buildPermissionBanner(), _buildFilterChips(), @@ -530,6 +537,8 @@ class _TeacherAttendancePageState extends State { child: Column( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ + Center(child: _buildTitlePill()), + const SizedBox(height: 16), _sidebarStatPill('전체 학생 수', total, 'ALL'), const SizedBox(height: 10), _sidebarStatPill('출석 학생 수', checkedIn, 'CHECKED_IN'),