diff --git a/lib/app/app.dart b/lib/app/app.dart index 43409be..93a4b55 100644 --- a/lib/app/app.dart +++ b/lib/app/app.dart @@ -10,6 +10,8 @@ import 'package:wow_english/pages/tab/blocs/tab_bloc.dart'; import 'package:wow_english/pages/user/bloc/user_bloc.dart'; import 'package:wow_english/route/route.dart'; +import '../route/custom_navigator_observer.dart'; + class App extends StatelessWidget { const App([this._navigatorObserver]); @@ -49,7 +51,7 @@ class App extends StatelessWidget { navigatorObservers: [ // 带入ApmNavigatorObserver实例用于路由监听 // 如果不带入SDK监听器将无法获知页面(PV)入栈退栈行为,错误率(Dart异常数/FlutterPV次数)将异常攀升。 - _navigatorObserver ?? ApmNavigatorObserver.singleInstance + _navigatorObserver ?? ApmNavigatorObserver.singleInstance, CustomNavigatorObserver() ], ), )), diff --git a/lib/common/utils/click_with_music_controller.dart b/lib/common/utils/click_with_music_controller.dart index c58f651..9f14323 100644 --- a/lib/common/utils/click_with_music_controller.dart +++ b/lib/common/utils/click_with_music_controller.dart @@ -40,6 +40,10 @@ class ClickWithMusicController { } } + void reset() { + _isPlaying = false; + } + // void dispose() { // _audioPlayer.dispose(); // } diff --git a/lib/pages/module/course_module_page.dart b/lib/pages/module/course_module_page.dart index 806b372..04b318d 100644 --- a/lib/pages/module/course_module_page.dart +++ b/lib/pages/module/course_module_page.dart @@ -94,12 +94,10 @@ class _LessonPageView extends StatelessWidget { // color: bloc.currentPageIndex == index // ? Colors.red // : Colors.white, - color: - parseColor(model.getSafeThemeColor()) - .withOpacity( - bloc.currentPageIndex == index - ? 1 - : 0.15), + color: parseColor(model.getSafeThemeColor()) + .withOpacity(bloc.currentPageIndex == index + ? 1 + : 0.15), borderRadius: BorderRadius.circular(5.r), border: Border.all( width: 0.5, diff --git a/lib/route/custom_navigator_observer.dart b/lib/route/custom_navigator_observer.dart new file mode 100644 index 0000000..fa1c071 --- /dev/null +++ b/lib/route/custom_navigator_observer.dart @@ -0,0 +1,29 @@ + + +import 'package:flutter/cupertino.dart'; +import 'package:wow_english/common/utils/click_with_music_controller.dart'; +import 'package:wow_english/utils/audio_player_util.dart'; + +import '../utils/log_util.dart'; + +class CustomNavigatorObserver extends RouteObserver> { + @override + void didPush(Route route, Route? previousRoute) { + Log.d("WQF CustomNavigatorObserver didPush route=$route previousRoute=$previousRoute"); + if (route is PageRoute) { + ClickWithMusicController.instance.reset(); + } + super.didPush(route, previousRoute); + } + + @override + void didPop(Route route, Route? previousRoute) { + Log.d("WQF CustomNavigatorObserver didPop route=$route previousRoute=$previousRoute"); + if (route is PageRoute) { + ClickWithMusicController.instance.reset(); + } + super.didPop(route, previousRoute); + } + + +} \ No newline at end of file