部分界面调整,把底部的播放控件完整前置
This commit is contained in:
+25
-5
@@ -1,23 +1,24 @@
|
||||
// lib/main.dart
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:media_kit/media_kit.dart';
|
||||
import 'services/audio_service.dart';
|
||||
import 'services/playback_service.dart';
|
||||
import 'pages/home_page.dart';
|
||||
import 'widgets/global_mini_player.dart';
|
||||
|
||||
// ✅ 全局导航键
|
||||
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
|
||||
|
||||
void main() {
|
||||
WidgetsFlutterBinding.ensureInitialized();
|
||||
|
||||
// 捕获初始化阶段的所有异常,避免引擎崩溃
|
||||
try {
|
||||
// 必须先初始化 media_kit
|
||||
MediaKit.ensureInitialized();
|
||||
// 然后初始化播放服务
|
||||
PlaybackService().init();
|
||||
} catch (e, stack) {
|
||||
print('❌ 初始化失败: $e');
|
||||
print(stack);
|
||||
// 显示错误页面,而不是白屏
|
||||
runApp(
|
||||
MaterialApp(
|
||||
home: Scaffold(
|
||||
@@ -47,7 +48,6 @@ void main() {
|
||||
return;
|
||||
}
|
||||
|
||||
// 运行时错误捕获
|
||||
FlutterError.onError = (details) {
|
||||
print('❌ Flutter Error: ${details.exception}');
|
||||
print('Stack: ${details.stack}');
|
||||
@@ -68,6 +68,7 @@ class QTPlayerApp extends StatelessWidget {
|
||||
Widget build(BuildContext context) {
|
||||
return MaterialApp(
|
||||
title: '清听',
|
||||
navigatorKey: navigatorKey, // ✅ 设置导航键
|
||||
theme: ThemeData(
|
||||
brightness: Brightness.dark,
|
||||
primaryColor: const Color(0xFF7C9A9E),
|
||||
@@ -80,6 +81,25 @@ class QTPlayerApp extends StatelessWidget {
|
||||
useMaterial3: true,
|
||||
),
|
||||
home: const HomePage(),
|
||||
builder: (context, child) {
|
||||
return Overlay(
|
||||
initialEntries: [
|
||||
OverlayEntry(
|
||||
builder: (context) => Stack(
|
||||
children: [
|
||||
Positioned.fill(child: child!),
|
||||
const Positioned(
|
||||
left: 0,
|
||||
right: 0,
|
||||
bottom: 0,
|
||||
child: GlobalMiniPlayer(),
|
||||
),
|
||||
],
|
||||
),
|
||||
),
|
||||
],
|
||||
);
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user