프로필 타일에 편집 버튼 추가 - 프로필 커스텀 화면으로 이동

메인 대시보드 프로필 카드 오른쪽 위에 작은 편집(연필) 버튼을 달아서
누르면 새로 만든 빈 커스텀 화면(ProfileCustomizeScreen)으로 이동한다.
아직은 자리만 잡아둔 화면이고, 실제 커스텀 기능들은 이후에 하나씩 추가.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-30 05:53:01 +00:00
co-authored by Claude Sonnet 5
parent 0055b3d40b
commit ae3a3f18ea
2 changed files with 150 additions and 61 deletions
+34 -1
View File
@@ -24,6 +24,7 @@ import 'launchpad_transition.dart';
import 'login_screen.dart'; import 'login_screen.dart';
import 'nfc_poccket_checkin_screen.dart'; import 'nfc_poccket_checkin_screen.dart';
import 'nfc_tag_writer_screen.dart'; import 'nfc_tag_writer_screen.dart';
import 'profile_customize_screen.dart';
import 'study_calendar_screen.dart'; import 'study_calendar_screen.dart';
import 'study_timer_screen.dart'; import 'study_timer_screen.dart';
import 'teacher_attendance_page.dart'; import 'teacher_attendance_page.dart';
@@ -632,7 +633,10 @@ class _MainDashboardState extends State<MainDashboard> {
// 🪪 작은 프로필 카드로 배치 — 화면 전체를 차지하던 배너 대신 // 🪪 작은 프로필 카드로 배치 — 화면 전체를 차지하던 배너 대신
// 가운데에 떠 있는 카드 하나만 둔다. // 가운데에 떠 있는 카드 하나만 둔다.
Center( Center(
child: Container( child: Stack(
clipBehavior: Clip.none,
children: [
Container(
padding: const EdgeInsets.symmetric( padding: const EdgeInsets.symmetric(
horizontal: 28, horizontal: 28,
vertical: 18, vertical: 18,
@@ -699,6 +703,35 @@ class _MainDashboardState extends State<MainDashboard> {
], ],
), ),
), ),
Positioned(
top: -6,
right: -6,
child: Material(
color: AppPalette.paper,
shape: const CircleBorder(),
elevation: 2,
child: InkWell(
customBorder: const CircleBorder(),
onTap: () => pushLaunchpad(
context,
(context) => ProfileCustomizeScreen(
studentId: _displayId,
studentName: _displayName,
),
),
child: const Padding(
padding: EdgeInsets.all(8),
child: Icon(
Icons.edit_rounded,
size: 16,
color: AppPalette.ink,
),
),
),
),
),
],
),
), ),
const SizedBox(height: 28), const SizedBox(height: 28),
Padding( Padding(
+56
View File
@@ -0,0 +1,56 @@
// 🎨 프로필 커스텀 화면 (UI 전용). 아직은 자리만 잡아둔 빈 화면 - 프로필 꾸미기
// 관련 기능들이 여기에 하나씩 추가될 예정이다.
import 'package:flutter/material.dart';
import '../theme/app_palette.dart';
import 'title_pill.dart';
class ProfileCustomizeScreen extends StatelessWidget {
final String studentId;
final String studentName;
const ProfileCustomizeScreen({
super.key,
required this.studentId,
required this.studentName,
});
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: AppPalette.mist,
appBar: AppBar(
backgroundColor: Colors.transparent,
foregroundColor: AppPalette.ink,
elevation: 0,
centerTitle: true,
title: const TitlePill('프로필 꾸미기'),
),
body: Center(
child: Padding(
padding: const EdgeInsets.all(24),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(
Icons.auto_awesome_rounded,
size: 48,
color: AppPalette.ink,
),
const SizedBox(height: 16),
const Text(
'곧 다양한 프로필 커스텀 기능이 추가될 예정이에요.',
textAlign: TextAlign.center,
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 15),
),
const SizedBox(height: 6),
Text(
'$studentName ($studentId)',
style: const TextStyle(color: Colors.grey),
),
],
),
),
),
);
}
}