FLUTTER JUST_AUDIO Navigator.Push 完成播放后无法正常工作
FLUTTER JUST_AUDIO Navigator.Push not working when finished play
我正在使用包 Just_Audio。它一直运行良好,但是现在我希望当它完成播放时,如果用户还没有付款,付款屏幕应该打开。
代码如下:
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);
}
在我介绍 Navigator.push 之前一切正常,并使用 Navigator.pop 关闭屏幕。但是,一旦我添加了推送代码,我就没有得到 PaymentsScreen,最后的 Navigator.pop 也不再有效。
我确实看到打印到控制台的内容:
打印用户付费
打印到这里
打印现在应该弹出
但不适用于:
打印到这里。
非常感谢任何帮助,谢谢
你不能同时调用Navigator.push和pop函数,你必须去支付页面然后你必须在支付完成后从那里弹出,并添加disposeAudio() ;推送到支付页面之前的功能
void closeScreen() {
disposeAudio();
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();
},
),
);
}
我正在使用包 Just_Audio。它一直运行良好,但是现在我希望当它完成播放时,如果用户还没有付款,付款屏幕应该打开。
代码如下:
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);
}
在我介绍 Navigator.push 之前一切正常,并使用 Navigator.pop 关闭屏幕。但是,一旦我添加了推送代码,我就没有得到 PaymentsScreen,最后的 Navigator.pop 也不再有效。
我确实看到打印到控制台的内容: 打印用户付费 打印到这里 打印现在应该弹出
但不适用于: 打印到这里。
非常感谢任何帮助,谢谢
你不能同时调用Navigator.push和pop函数,你必须去支付页面然后你必须在支付完成后从那里弹出,并添加disposeAudio() ;推送到支付页面之前的功能
void closeScreen() {
disposeAudio();
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();
},
),
);
}