feat(ui): 歌曲列表改用封面图,替代统一的小图标
- 新增 SongArtwork 组件:内存字节 > 本地封面文件 > 图标兜底,圆角裁剪 - WebDAV 文件列表:前导图标换成封面(来自 songs.artwork_path) - 播放列表页:批量查封面路径(getSongsByPaths),正在播放的歌优先用内存里的封面字节; 切歌后重新拉一次,保证新补全的封面能显示 - 没有封面的歌仍回退为音符/播放图标,不影响列表结构
This commit is contained in:
@@ -6,6 +6,7 @@ import '../base/base_state.dart';
|
||||
import '../controllers/playback_controller.dart';
|
||||
import '../database/song_database.dart';
|
||||
import '../services/audio_service.dart';
|
||||
import '../widgets/song_artwork.dart';
|
||||
|
||||
class WebDAVFileListPage extends StatefulWidget {
|
||||
final String currentPath;
|
||||
@@ -358,10 +359,10 @@ class _WebDAVFileListPageState extends BaseState<WebDAVFileListPage> {
|
||||
|
||||
return ListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: 4, vertical: 2),
|
||||
leading: const Icon(
|
||||
Icons.audiotrack,
|
||||
color: Color(0xFFB8D4D0),
|
||||
size: 28,
|
||||
leading: SongArtwork(
|
||||
filePath: meta?['artwork_path'] as String?,
|
||||
size: 44,
|
||||
fallbackIcon: Icons.audiotrack,
|
||||
),
|
||||
title: Text(
|
||||
titleText,
|
||||
|
||||
Reference in New Issue
Block a user