【发布时间】:2020-05-07 05:32:47
【问题描述】:
我和Show a snackbar after navigate in Flutter 有同样的问题,但对于https://pub.dev/packages/flushbar
导航后如何显示flushbar?
(在第一条路线中,当我们导航到第二条路线时,我们有一个后台任务,该任务可能会失败,我想通过刷新条向最终用户显示一条消息,UI在第二条路线中(或者可能是另一条路线)在 FiratRout 之后(或之前,无论如何)导航,后台任务运行一段时间后可能会失败
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
title: 'Navigation Basics',
home: FirstRoute(),
));
}
class FirstRoute extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('First Route'),
),
body: Center(
child: RaisedButton(
child: Text('Open route'),
onPressed: () async {
await Navigator.pushReplacement(
context,
MaterialPageRoute(builder: (context) => SecondRoute()),
);
Flushbar(
title: "Hey Ninja",
message:
"Lorem Ipsum is simply dummy text of the printing and typesetting industry",
duration: Duration(seconds: 3),
)..show(context);
},
),
),
);
}
}
class SecondRoute extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Second Route"),
),
body: Center(
child: Text(
"I want to show here Flushbar, Flushbar.show called in FirstRoute"),
),
);
}
}
【问题讨论】:
-
您是否按照该问题的答案进行了尝试?
-
同时添加 getSavedThingRoute()。
-
我在每条路由中都有
Scaffold,不可能为所有路由设置GlobalKey,scaffoldKey.currentState也没有flushbar!因为我是新手,所以我不知道! -
@VirenVVarasadiya
getSavedThingRoute()是一个假例子,这并不重要,我只想在没有上下文的情况下显示flushbar -
您可以尝试将 await 放在 navigator 之前吗?等待导航器.....
标签: flutter