部分界面逻辑调整:播放界面默认最高优先级,其次是独立的miniplayerbar
This commit is contained in:
+39
-2
@@ -5,6 +5,7 @@ import 'package:media_kit/media_kit.dart';
|
||||
import 'services/audio_service.dart';
|
||||
import 'services/playback_service.dart';
|
||||
import 'pages/home_page.dart';
|
||||
import 'pages/player_page.dart';
|
||||
import 'widgets/global_mini_player.dart';
|
||||
|
||||
// ✅ 全局导航键
|
||||
@@ -61,14 +62,41 @@ void main() {
|
||||
);
|
||||
}
|
||||
|
||||
class QTPlayerApp extends StatelessWidget {
|
||||
class QTPlayerApp extends StatefulWidget {
|
||||
const QTPlayerApp({super.key});
|
||||
|
||||
@override
|
||||
State<QTPlayerApp> createState() => _QTPlayerAppState();
|
||||
}
|
||||
|
||||
class _QTPlayerAppState extends State<QTPlayerApp> {
|
||||
bool _showPlayerPage = false;
|
||||
|
||||
// ✅ 播放页回调,暴露给 GlobalMiniPlayer
|
||||
void _openPlayerPage() {
|
||||
setState(() {
|
||||
_showPlayerPage = true;
|
||||
});
|
||||
}
|
||||
|
||||
void _closePlayerPage() {
|
||||
setState(() {
|
||||
_showPlayerPage = false;
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
super.initState();
|
||||
// ✅ 注入回调(GlobalMiniPlayer 是 static 成员)
|
||||
GlobalMiniPlayer.onOpenPlayerPage = _openPlayerPage;
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
title: '清听',
|
||||
navigatorKey: navigatorKey, // ✅ 设置导航键
|
||||
navigatorKey: navigatorKey,
|
||||
theme: ThemeData(
|
||||
brightness: Brightness.dark,
|
||||
primaryColor: const Color(0xFF7C9A9E),
|
||||
@@ -87,13 +115,22 @@ class QTPlayerApp extends StatelessWidget {
|
||||
OverlayEntry(
|
||||
builder: (context) => Stack(
|
||||
children: [
|
||||
// ① 主页面
|
||||
Positioned.fill(child: child!),
|
||||
// ② MiniPlayer
|
||||
const Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
child: GlobalMiniPlayer(),
|
||||
),
|
||||
// ③ 播放页(全屏覆盖)
|
||||
if (_showPlayerPage)
|
||||
Positioned.fill(
|
||||
child: PlayerPage(
|
||||
onClose: _closePlayerPage,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user