feat(playlist): 歌单集合页 + 歌单详情页 + 首页入口

style(ui): 播放页红心与标题居中对齐、标题单行

- playlists_page:歌单列表(封面/名称/歌曲数)、新建、重命名、删除
- playlist_detail_page:歌单内歌曲、播放全部、单曲播放、移除
- 首页"歌单列表"按钮接入 PlaylistsPage
- 播放页:标题行改为 center 对齐、标题限制单行,
  收藏按钮压到 36x36,红心与标题不再错位
This commit is contained in:
2026-10-31 23:37:47 +08:00
parent e3f72a69a9
commit e89bd6381a
4 changed files with 443 additions and 6 deletions
+8 -4
View File
@@ -337,7 +337,7 @@ class _PlayerPageState extends BaseState<PlayerPage> {
// ---- 标题 / 艺术家(收藏心在标题右侧)----
Row(
crossAxisAlignment: CrossAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Expanded(
child: Text(
@@ -348,7 +348,7 @@ class _PlayerPageState extends BaseState<PlayerPage> {
color: Colors.white,
height: 1.25,
),
maxLines: 2,
maxLines: 1,
overflow: TextOverflow.ellipsis,
),
),
@@ -356,17 +356,21 @@ class _PlayerPageState extends BaseState<PlayerPage> {
IconButton(
onPressed: () => _toggleFavorite(song),
tooltip: '收藏',
padding: EdgeInsets.zero,
constraints:
const BoxConstraints(minWidth: 36, minHeight: 36),
iconSize: 24,
icon: Icon(
_isFavorite ? Icons.favorite : Icons.favorite_border,
color: _isFavorite
? const Color(0xFFE05C5C)
: Colors.white54,
size: 26,
size: 24,
),
),
],
),
const SizedBox(height: 10),
const SizedBox(height: 2),
Text(
song.artist,
style: TextStyle(fontSize: 16, color: Colors.grey[300]),