flutter - FLUTTER JUST_AUDIO Navigator.Push 播放完成后不起作用
问题描述
我正在使用包 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 也不再工作。
我确实看到打印到控制台: print USER PAID print got here print should pop now
但不是为了:打印到这里。
任何帮助将不胜感激,谢谢
解决方案
你不能同时调用 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();
},
),
);
}
推荐阅读
- ruby - Haml,ruby on rails 错误:渲染模板时遇到语法错误
- django - Django Admin - 选择禁用字段
- android - 想探索应用程序开发的世界
- html - 如何在角度每 3 列之后添加行
- c - 如何检查用户输入在C中的数据类型是否正确
- wordpress - Wordpress,按相同元键的多个值排序
- flutter - 我应该在最后还是开始时调用 super.initState?
- python - 通过单独的映射表将 dtypes 加载到 Python 中,该映射表可以链接到主数据框以按列指定 dtypes
- r - com.google.android.material.R 无法为 BottomNavigationView 解析符号“R”
- nginx - 显示未找到 url 的自定义页面