실시간 출석 현황: 제목 알약을 앱바에서 사이드바 상단으로 이동
앱바 가운데 제목 대신, "전체 학생 수" 버튼 바로 위(사이드바 최상단)에 제목 알약을 두도록 변경. 모바일도 요약 카드 위로 동일하게 이동. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -205,29 +205,13 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
|
|||||||
|
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
backgroundColor: AppPalette.mist,
|
backgroundColor: AppPalette.mist,
|
||||||
// 🪶 검정 배너 대신 가운데에 둥근 제목 알약만 띄우고, 나머지 기능은 전부
|
// 🪶 검정 배너 대신, 제목 알약은 "전체 학생 수" 버튼 바로 위(사이드바/모바일 요약 위)에 둔다.
|
||||||
// "자습실 시간 설정 메뉴"(런치패드 스타일 오버레이) 하나로 모은다.
|
// 나머지 기능은 전부 "자습실 시간 설정 메뉴"(런치패드 스타일 오버레이) 하나로 모은다.
|
||||||
// 폰에서는 사이드바가 없으니 여기 아이콘으로도 같은 메뉴를 열 수 있게 둔다.
|
// 폰에서는 사이드바가 없으니 여기 아이콘으로도 같은 메뉴를 열 수 있게 둔다.
|
||||||
appBar: AppBar(
|
appBar: AppBar(
|
||||||
backgroundColor: Colors.transparent,
|
backgroundColor: Colors.transparent,
|
||||||
foregroundColor: AppPalette.ink,
|
foregroundColor: AppPalette.ink,
|
||||||
elevation: 0,
|
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: [
|
actions: [
|
||||||
IconButton(
|
IconButton(
|
||||||
icon: const Icon(Icons.more_horiz_rounded),
|
icon: const Icon(Icons.more_horiz_rounded),
|
||||||
@@ -260,6 +244,26 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 🪶 "실시간 출석 현황" 제목 알약. 사이드바/모바일 요약 바로 위에 둔다.
|
||||||
|
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<TeacherAttendancePage> {
|
|||||||
final groups = _controller.studentsByGrade;
|
final groups = _controller.studentsByGrade;
|
||||||
return Column(
|
return Column(
|
||||||
children: [
|
children: [
|
||||||
|
const SizedBox(height: 12),
|
||||||
|
_buildTitlePill(),
|
||||||
|
const SizedBox(height: 12),
|
||||||
_buildSummaryCards(total, checkedIn, absent),
|
_buildSummaryCards(total, checkedIn, absent),
|
||||||
_buildPermissionBanner(),
|
_buildPermissionBanner(),
|
||||||
_buildFilterChips(),
|
_buildFilterChips(),
|
||||||
@@ -530,6 +537,8 @@ class _TeacherAttendancePageState extends State<TeacherAttendancePage> {
|
|||||||
child: Column(
|
child: Column(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: [
|
children: [
|
||||||
|
Center(child: _buildTitlePill()),
|
||||||
|
const SizedBox(height: 16),
|
||||||
_sidebarStatPill('전체 학생 수', total, 'ALL'),
|
_sidebarStatPill('전체 학생 수', total, 'ALL'),
|
||||||
const SizedBox(height: 10),
|
const SizedBox(height: 10),
|
||||||
_sidebarStatPill('출석 학생 수', checkedIn, 'CHECKED_IN'),
|
_sidebarStatPill('출석 학생 수', checkedIn, 'CHECKED_IN'),
|
||||||
|
|||||||
Reference in New Issue
Block a user