部分界面逻辑调整:播放界面默认最高优先级,其次是独立的miniplayerbar

This commit is contained in:
2026-08-18 23:08:52 +08:00
parent c05398d76f
commit 74a15ca7af
5 changed files with 103 additions and 164 deletions
+5 -9
View File
@@ -2,13 +2,15 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../services/audio_service.dart';
import '../pages/player_page.dart';
import '../pages/playlist_page.dart';
import '../main.dart'; // ✅ 导入 navigatorKey
class GlobalMiniPlayer extends StatelessWidget {
const GlobalMiniPlayer({super.key});
// ✅ 通过全局回调打开播放页(由 main.dart 注入)
static VoidCallback? onOpenPlayerPage;
@override
Widget build(BuildContext context) {
final service = context.watch<AudioService>();
@@ -18,13 +20,8 @@ class GlobalMiniPlayer extends StatelessWidget {
return GestureDetector(
onTap: () {
if (song != null) {
// ✅ 使用 navigatorKey 跳转
navigatorKey.currentState?.push(
MaterialPageRoute(
builder: (_) => const PlayerPage(),
),
);
if (song != null && onOpenPlayerPage != null) {
onOpenPlayerPage!();
}
},
child: Container(
@@ -115,7 +112,6 @@ class GlobalMiniPlayer extends StatelessWidget {
size: 24,
),
onPressed: () {
// ✅ 使用 navigatorKey 跳转
navigatorKey.currentState?.push(
MaterialPageRoute(
builder: (_) => const PlaylistPage(),