Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 在类方法中使用Navigator.push(MaterialPageRoute)_Flutter_Dart_Materialpageroute - Fatal编程技术网

Flutter 在类方法中使用Navigator.push(MaterialPageRoute)

Flutter 在类方法中使用Navigator.push(MaterialPageRoute),flutter,dart,materialpageroute,Flutter,Dart,Materialpageroute,我正在构建一个应用程序,使用flifter来播放音乐 我创建了一个名为MusicService的类,所有的音乐功能都是通过playMusic、seekMusic、onAudioComplete等方法实现的 我有我的TrackScreen,它是基于轨迹构建的(带有轨迹的背景、描述等)。在屏幕的init方法中,我调用MusicService的istance在屏幕上播放音乐。到目前为止还不错 我想做的是在一首曲目完成后构建一个新屏幕。此屏幕应基于播放列表中的下一首曲目。 我认为的解决方案是调用Navi

我正在构建一个应用程序,使用flifter来播放音乐

我创建了一个名为MusicService的类,所有的音乐功能都是通过playMusic、seekMusic、onAudioComplete等方法实现的

我有我的TrackScreen,它是基于轨迹构建的(带有轨迹的背景、描述等)。在屏幕的init方法中,我调用MusicService的istance在屏幕上播放音乐。到目前为止还不错

我想做的是在一首曲目完成后构建一个新屏幕。此屏幕应基于播放列表中的下一首曲目。 我认为的解决方案是调用Navigator.Push类MusicService的onAudioComplete方法。问题是Navigator.Push需要一个上下文,我不知道如何指定它来引用调用它的上下文,即TrackScreen上下文

你有办法解决这个问题吗?我是不是误解了什么


感谢您的帮助

您可以使用
MaterialApp的
导航功能
在没有
上下文的情况下导航

首先,您必须声明一个GlobalKey

final GlobalKey<NavigatorState> navKey = GlobalKey<NavigatorState>();
之后,您将能够让它推出新的屏幕

navKey.currentState.push(...)
navKey.currentState.push(...)