- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
是否可以通过通知点击导航到应用中的特定 MaterialPageRoute?我在主屏幕中配置了通知:
void _configureNotifications() {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
_firebaseMessaging.requestNotificationPermissions();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) {
_goToDeeplyNestedView();
},
onLaunch: (Map<String, dynamic> message) {
_goToDeeplyNestedView();
},
onResume: (Map<String, dynamic> message) {
_goToDeeplyNestedView();
},
);
}
_goToDeeplyNestedView() {
Navigator.push(
context,
MaterialPageRoute(
builder: (_) => DeeplyNestedView()));
}
问题是,当我这样配置它时,它只能从我配置通知的 Widget 中运行(我猜这是因为在 导航器.push()。有没有什么方法可以在不使用任何上下文的情况下从应用程序的任何位置访问 MaterialPageRoute?
预先感谢您的回答。
最佳答案
在很多情况下,使用 GlobalKey 是个好主意,但这可能是其中之一。
当您构建MaterialApp
(我假设您正在使用)时,您可以传入一个navigatorKey
。指定用于导航器的键的参数。然后您可以使用此键访问导航器的状态。这看起来像这样:
class _AppState extends State<App> {
final GlobalKey<NavigatorState> navigatorKey = GlobalKey(debugLabel: "Main Navigator");
@override
Widget build(BuildContext context) {
return new MaterialApp(
navigatorKey: navigatorKey,
home: new Scaffold(
endDrawer: Drawer(),
appBar: AppBar(),
body: new Container(),
),
);
}
}
然后要使用它,您需要访问 navigatorKey.currentContext:
_goToDeeplyNestedView() {
navigatorKey.currentState.push(
MaterialPageRoute(builder: (_) => DeeplyNestedView())
);
}
关于dart - 如何从 Flutter 中的通知导航到应用程序中的特定 MaterialPageRoute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52186837/
我有4个屏幕。 X,A,B,C。导航模式应如下所示 这是代码 X 屏幕 class X extends StatelessWidget { @override Widget build(Bui
我一直在学习使用Flutter文档编写应用程序达2周之久。今天,我遇到了有关Navigator.push()的问题。一切正常,但不是在重新启动笔记本电脑之后。我找不到解决方案,我尝试过 flutter
是否可以在 RaisedButton 中关闭 MaterialPageRoute?我想这样做,如果您在文本字段中输入 1 并转到第 2 页。这可能吗?如果可能的话如何? Padding(
我正在按照 Flutter 文档中的教程进行操作,您在其中创建了一个启动命名应用程序。该应用程序由两个页面组成:一个是无限的随机生成的启动名称列表,您可以将其添加到您的收藏夹,另一个是收藏夹页面,您可
设置 我必须使用简单的路线,FirstRoute 和 SecondRoute。每个都包含一个用于导航的按钮。按 FirstRoute 的按钮会转到第二个,反之亦然。 异常 当我尝试从 FirstRou
我正在构建一个使用 Flutter 播放音乐的应用程序。 我创建了一个名为 MusicService 的类,其中所有音乐功能都在 playMusic、seekMusic、onAudioComplete
我正在创建一个包含 TextField 的页面,当用户在其中输入 3 个以上的字符时,我会从数据库中获取包含插入文本的行。在我提供的示例中,我通过获取列表来模拟它。向用户显示此列表后,用户可以点击其中
是否可以通过通知点击导航到应用中的特定 MaterialPageRoute?我在主屏幕中配置了通知: void _configureNotifications() { final Firebase
在下面的示例中,当我推送新的 MaterialPageRoute 时,它与 Flutter 小部件树中的 Home 小部件在同一级别上创建。我想把它作为小部件 Home 的 child ,所以 H
我有一个显示用户列表的小部件。单击列表元素时,将创建一个新的 MaterialPageRoute 并将其推送到导航器以打开显示消息历史记录的该用户的聊天屏幕。 class Users extends
我正在构建一个 flutter 应用程序,我正在尝试使用 MaterialPageRouter 将数据传递到页面,但我收到一条错误消息,提示 “参数类型 'MaterialPageRoute dyna
我想使用 Navigator.push (MaterialPageRoute) 而不是 AlertDialog,因为现在我认为让我的用户拥有一个完整的页面来发布内容而不是一个对话框更好,我将如何编辑我
我收到此错误 flutter_windows_v1.9.0-dev 但我不知道如何解决它。 Missing type arguments for generic type "MaterialPageR
我目前可以将 MaterialRoute 从 Flutter 中的 Home App 路由到页面,并显示一个弹出对话框。但是,从第二页路由到第三页(其中包含一个应该显示对话的按钮)时,我收到此错误:[
我正在学习 flutter,这段代码直接来自老师。我知道 flutter 一直在变化,这可能就是它没有运行的原因。不管怎样,它是: class Klimatic extends StatefulWid
我正在尝试使用命名路由导航到另一个页面: ... RaisedButton( child: Text('Get image'), onPressed:
我是一名优秀的程序员,十分优秀!