Files
sihoo 383d3143c8 커스텀창 체험하기 미리보기가 제목 알약/준비중 타일까지 전부 반영되게 수정
TitlePill이 전역(globalProfileTheme, 실제 장착된 테마)만 구독하고 있어서,
커스텀창 안에서 체험하기로 다른 템플릿을 미리보는 중에도 제목 알약은
실제 장착된 테마 색 그대로 남아있었다. TitlePill에 previewTheme 파라미터를
추가해 넘기면 전역 테마보다 우선하도록 하고, 커스텀창에서 자신의
_displayTheme(체험 중인 테마)를 넘기게 했다.

"랭킹·친구창 배경"/"출석·그룹창 표시" 준비중 타일도 같은 이유로 실제 장착된
테마(AppPalette.linen/sage, 전역)를 쓰고 있어서 체험하기를 눌러도 안 바뀌던
것을, _CategoryTile에 theme 파라미터를 추가해 _displayTheme을 쓰도록 고쳤다.
2026-10-01 23:30:24 +00:00

47 lines
1.8 KiB
Dart

// 🪶 검정 AppBar 대신 쓰는 둥근 제목 알약. 모든 화면이 똑같은 폰트/크기를 쓰고,
// 화면 맨 위에 딱 붙어 보이지 않도록 위쪽에 살짝 여백을 둔다.
// 🛍️ 프로필 꾸미기 템플릿을 장착하면 이 알약 배경도 같이 바뀐다 - 앱 전체가
// 공유하는 위젯이라 여기 하나만 고치면 모든 화면의 제목 배경이 한번에 바뀐다.
import 'package:flutter/material.dart';
import '../theme/app_palette.dart';
import '../theme/profile_themes.dart';
import '../theme/theme_sync.dart';
class TitlePill extends StatelessWidget {
final String text;
/// 🎨 프로필 꾸미기 화면의 "체험하기" 미리보기처럼, 이 화면 안에서만 임시로
/// 보여줄 테마가 있을 때 넘긴다. 넘기면 전역 장착 테마보다 이게 우선한다.
final ProfileTheme? previewTheme;
const TitlePill(this.text, {super.key, this.previewTheme});
@override
Widget build(BuildContext context) {
return ValueListenableBuilder(
valueListenable: globalProfileTheme,
builder: (context, globalTheme, _) {
final theme = previewTheme ?? globalTheme;
return Padding(
padding: const EdgeInsets.only(top: 8),
child: Container(
padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10),
decoration: BoxDecoration(
color: theme?.secondary ?? AppPalette.ink,
borderRadius: BorderRadius.circular(999),
),
child: Text(
text,
style: const TextStyle(
color: Colors.white,
fontWeight: FontWeight.bold,
fontSize: 15,
),
),
),
);
},
);
}
}