Flutter 播放完毕后,按“不工作”按钮

Flutter 播放完毕后,按“不工作”按钮,flutter,dart,flutter-dependencies,Flutter,Dart,Flutter Dependencies,我用的是音频包。它一直工作得很好,但是现在我希望当它完成播放时,如果用户没有付款,屏幕应该打开 代码如下: void closeScreen() { final _userHasPaid = Provider.of<User>(context, listen: false).user.testPaid; print("USER PAID = ${_userHasPaid}"); if (_userHasPaid == false &&

我用的是音频包。它一直工作得很好,但是现在我希望当它完成播放时,如果用户没有付款,屏幕应该打开

代码如下:

void closeScreen() {


final _userHasPaid =
    Provider.of<User>(context, listen: false).user.testPaid;
print("USER PAID = ${_userHasPaid}");
if (_userHasPaid == false && widget.breathwork.breathType == "F") {
  print("got here");
  Navigator.push(
    context,
    MaterialPageRoute(
      builder: (context) {
        print(" and got here");
        return PaymentsScreen();
      },
    ),
  );
}

disposeAudio();
print("should pop now");
Navigator.pop(context);
void closeScreen(){
最终用户已支付=
Provider.of(context,listen:false).user.testPaid;
打印(“用户付费=${u userhaspayed}”);
if(_userhaspayd==false&&widget.breathwork.breathType==F){
打印(“到达这里”);
导航器。推(
上下文
材料路线(
生成器:(上下文){
打印(“并到达这里”);
返回PaymentsScreen();
},
),
);
}
disposeAudio();
打印(“现在应该弹出”);
Navigator.pop(上下文);
}

在我介绍Navigator.push之前,一切都很好,用Navigator.pop关闭屏幕。但是,一旦添加推送代码,我就无法获得PaymentsScreen,最后的Navigator.pop也不再工作

我确实看到控制台上的以下打印: 打印用户付费 打印到这里 印刷品现在应该流行了

但不是为了: 打印到这里


非常感谢您的帮助,谢谢

您不能同时调用Navigator.push和pop函数,您必须转到付款页面,然后在付款完成后从那里弹出,并添加disposeAudio();推送至付款页面前的功能

void closeScreen(){
disposeAudio();
最终用户已支付=
Provider.of(context,listen:false).user.testPaid;
打印(“用户付费=${u userhaspayed}”);
if(_userhaspayd==false&&widget.breathwork.breathType==F){
打印(“到达这里”);
导航器。推(
上下文
材料路线(
生成器:(上下文){
打印(“并到达这里”);
返回PaymentsScreen();
},
),
);
}

谢谢,这样更清楚。但我确实需要弹出。我不想在付款完成后返回此屏幕,但要返回之前的屏幕。您可以从这里进入该屏幕