开始给原先适配期的状态擦屁股:现在是修复播放页与播放列表页的显示

This commit is contained in:
2026-09-02 20:44:46 +08:00
parent 200067a3b2
commit cdf77b308d
4 changed files with 76 additions and 64 deletions
+1 -1
View File
@@ -20,7 +20,7 @@ pluginManagement {
plugins {
id("dev.flutter.flutter-plugin-loader") version "1.0.0"
id("com.android.application") version "9.0.1" apply false
id("org.jetbrains.kotlin.android") version "2.2.20" apply false
id("org.jetbrains.kotlin.android") version "2.3.20" apply false
}
include(":app")
+12 -2
View File
@@ -5,6 +5,7 @@ import 'package:media_kit/media_kit.dart';
import 'package:audio_service/audio_service.dart' as audio_service;
import 'package:permission_handler/permission_handler.dart';
import 'package:flutter/services.dart';
import 'services/audio_service.dart';
import 'services/playback_service.dart';
import 'services/app_lifecycle_service.dart';
@@ -15,8 +16,8 @@ import 'pages/home_page.dart';
import 'pages/player_page.dart';
import 'pages/playlist_page.dart';
import 'widgets/global_mini_player.dart';
import 'utils/navigation.dart';
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
final stopwatch = Stopwatch();
bool _appInitialized = false;
@@ -363,7 +364,15 @@ class _QTPlayerAppState extends State<QTPlayerApp> {
debugPrint(
'🎨 [QTPlayerApp] build #$_buildCount ${stopwatch.elapsedMilliseconds}ms');
return MaterialApp(
// ⭐ 使用 AnnotatedRegion 包裹 MaterialApp,统一控制系统栏样式
return AnnotatedRegion<SystemUiOverlayStyle>(
value: SystemUiOverlayStyle(
statusBarColor: Colors.transparent,
statusBarIconBrightness: Brightness.light,
systemNavigationBarColor: const Color(0xFF1A1F1E),
systemNavigationBarIconBrightness: Brightness.light,
),
child: MaterialApp(
title: '清听',
theme: ThemeData(
brightness: Brightness.dark,
@@ -422,6 +431,7 @@ class _QTPlayerAppState extends State<QTPlayerApp> {
],
);
},
),
);
}
}
+3
View File
@@ -0,0 +1,3 @@
import 'package:flutter/material.dart';
final GlobalKey<NavigatorState> navigatorKey = GlobalKey<NavigatorState>();
+5 -6
View File
@@ -2,6 +2,7 @@
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import '../services/audio_service.dart';
import '../utils/navigation.dart'; // ⭐ 导入 navigatorKey
class GlobalMiniPlayer extends StatelessWidget {
const GlobalMiniPlayer({super.key});
@@ -45,11 +46,9 @@ class GlobalMiniPlayer extends StatelessWidget {
color: Colors.transparent,
child: InkWell(
onTap: () {
// ⭐ 使用 Navigator.of(context) 替代 navigatorKey
Navigator.of(context, rootNavigator: true)
.pushNamed('/player');
// ⭐ 使用 navigatorKey 直接跳转
navigatorKey.currentState?.pushNamed('/player');
},
// ⭐ 替换弃用的 withOpacity 为 withValues
highlightColor: Colors.white.withValues(alpha: 0.05),
splashColor: Colors.white.withValues(alpha: 0.1),
borderRadius: BorderRadius.circular(12),
@@ -124,8 +123,8 @@ class GlobalMiniPlayer extends StatelessWidget {
size: 24,
),
onPressed: () {
// ⭐ 使用 Navigator.of(context)
Navigator.of(context).pushNamed('/playlist');
// ⭐ 使用 navigatorKey 直接跳转
navigatorKey.currentState?.pushNamed('/playlist');
},
),
const SizedBox(width: 4),