From a29efe77ad226ed7dcfe06f4583e0ff5a5e3f0a6 Mon Sep 17 00:00:00 2001 From: sihoo Date: Thu, 1 Oct 2026 04:03:47 +0000 Subject: [PATCH] =?UTF-8?q?=ED=94=84=EB=A1=9C=ED=95=84=20=EC=83=81?= =?UTF-8?q?=EC=A0=90=20=EC=A4=80=EB=B9=84=EC=A4=91=20=ED=83=80=EC=9D=BC=20?= =?UTF-8?q?=ED=85=8D=EC=8A=A4=ED=8A=B8=20=EC=98=A4=EB=B2=84=ED=94=8C?= =?UTF-8?q?=EB=A1=9C=EC=9A=B0=20=EC=88=98=EC=A0=95=20+=20=EA=B4=80?= =?UTF-8?q?=EB=A6=AC=EC=9E=90=20=ED=85=8C=EB=A7=88=20=EB=B0=98=EC=98=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 카테고리 타일 내부 패딩/간격을 줄이고 제목·부제목에 ellipsis를 줘서 "준비중" 텍스트가 타일 밖으로 삐져나오던 문제를 해결. 관리자 계정도 백엔드에서 템플릿을 무료로 쓸 수 있게 된 것에 맞춰, 메인 대시보드 프로필 카드의 장착 테마 반영을 관리자 계정에도 적용한다. --- lib/ui/main_dashboard.dart | 4 ++-- lib/ui/profile_customize_screen.dart | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/lib/ui/main_dashboard.dart b/lib/ui/main_dashboard.dart index a790c59..7f940a2 100644 --- a/lib/ui/main_dashboard.dart +++ b/lib/ui/main_dashboard.dart @@ -80,7 +80,7 @@ class _MainDashboardState extends State { if (kTileEditingEnabled) { _layout.load(_tileSpecs().map((t) => t.id).toList()); } - if (_isStudent) { + if (_isStudent || _isAdmin) { _loadEquippedTheme(); } } @@ -753,7 +753,7 @@ class _MainDashboardState extends State { ), ); // 상점에서 테마를 바꾸고 돌아왔을 수 있으니 다시 불러온다. - if (_isStudent) _loadEquippedTheme(); + if (_isStudent || _isAdmin) _loadEquippedTheme(); }, child: const Padding( padding: EdgeInsets.all(8), diff --git a/lib/ui/profile_customize_screen.dart b/lib/ui/profile_customize_screen.dart index 714b9b5..498c2df 100644 --- a/lib/ui/profile_customize_screen.dart +++ b/lib/ui/profile_customize_screen.dart @@ -141,7 +141,7 @@ class _ProfileCustomizeScreenState extends State { // 📏 ListView(스크롤 영역) 안에서는 높이가 정해져 있지 않아 Row에 // stretch 정렬만 주면 자식 크기 계산이 깨진다. SizedBox로 높이를 못박아둔다. return SizedBox( - height: 180, + height: 210, child: Row( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ @@ -247,7 +247,7 @@ class _CategoryTile extends StatelessWidget { borderRadius: BorderRadius.circular(20), onTap: onTap, child: Container( - padding: const EdgeInsets.all(16), + padding: const EdgeInsets.symmetric(horizontal: 14, vertical: 10), decoration: BoxDecoration( borderRadius: BorderRadius.circular(20), border: Border.all( @@ -257,30 +257,35 @@ class _CategoryTile extends StatelessWidget { child: Column( crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.center, + mainAxisSize: MainAxisSize.min, children: [ Icon( icon, - size: 26, + size: 22, color: selected ? Colors.white : (enabled ? AppPalette.ink : Colors.grey), ), - const SizedBox(height: 10), + const SizedBox(height: 8), Text( title, + maxLines: 1, + overflow: TextOverflow.ellipsis, style: TextStyle( fontWeight: FontWeight.bold, - fontSize: 14, + fontSize: 13, color: selected ? Colors.white : (enabled ? AppPalette.ink : Colors.grey[600]), ), ), if (subtitle != null) ...[ - const SizedBox(height: 4), + const SizedBox(height: 2), Text( subtitle!, - style: TextStyle(fontSize: 11, color: Colors.grey[500]), + maxLines: 1, + overflow: TextOverflow.ellipsis, + style: TextStyle(fontSize: 10, color: Colors.grey[500]), ), ], ],