fix(ui): 加入歌单弹层不再被迷你播放器遮挡
原因:迷你播放器挂在 Navigator overlay 上,层级高于底部弹层, 弹层里的歌单列表被它盖住,看起来像"没读到歌单"。 (日志确认查询正常:读到 1 个歌单) - RouteManager 抽到 services/route_manager.dart,新增临时隐藏开关 - 打开"加入歌单"弹层时隐藏迷你播放器,关闭后恢复 - main.dart 的 shouldShow 改用 showMiniPlayer(原来直接读路由,开关不生效) - 弹层底部加 SafeArea minimum + 16px 余量,不再贴着手势区 真机验证:弹层正常显示 "TL / 1 首",底部留出安全距离。
This commit is contained in:
@@ -3,6 +3,7 @@ import 'package:flutter/material.dart';
|
||||
|
||||
import '../models/playlist_summary.dart';
|
||||
import '../repositories/playlist_repository.dart';
|
||||
import '../services/route_manager.dart';
|
||||
|
||||
/// 把一首歌加入歌单的底部弹层。
|
||||
///
|
||||
@@ -26,11 +27,14 @@ Future<void> showAddToPlaylistSheet(
|
||||
}
|
||||
if (!context.mounted) return;
|
||||
|
||||
RouteManager().setTemporarilyHidden(true);
|
||||
try {
|
||||
await showModalBottomSheet<void>(
|
||||
context: context,
|
||||
backgroundColor: const Color(0xFF1A1F1E),
|
||||
builder: (sheetContext) {
|
||||
return SafeArea(
|
||||
minimum: const EdgeInsets.only(bottom: 12),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
@@ -109,12 +113,15 @@ Future<void> showAddToPlaylistSheet(
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(height: 8),
|
||||
const SizedBox(height: 16),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
);
|
||||
} finally {
|
||||
RouteManager().setTemporarilyHidden(false);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _createPlaylistAndAdd(
|
||||
@@ -163,4 +170,4 @@ Future<void> _createPlaylistAndAdd(
|
||||
SnackBar(content: Text('新建歌单失败: $e')),
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user