【发布时间】:2019-08-22 05:09:04
【问题描述】:
我在我的项目中实现了Quick_actions 插件,我想打开一个特定的屏幕,但在快速操作处理函数中,导航器不起作用。带有Try-Catch,异常显示上下文显示来自导航器,但我使用的是我的 MaterialApp 的 navigatorKey 的上下文。
如果我将任何其他函数(如 print('some text'))放入它可以工作,那么问题只会在我尝试使用导航器时发生
创建快速操作并添加处理函数
createQuickActions() {
quickActions.initialize(
(String shortcutId) {
switch (shortcutId) {
case 'settings':
try {
Navigator.push(
MyApp.navigatorKey.currentContext,
MaterialPageRoute(
builder: (context) => SettingsScreen(sistemas),
),
);
} catch (e) {
print(e);
}
print('selected: $shortcutId');
break;
}
}
);
}
初始化快速操作
quickActions.setShortcutItems(
<ShortcutItem>[
const ShortcutItem(
type: 'settings',
localizedTitle: 'settings',
icon: 'settings',
),
],
);
所有这些代码都在我的SplashScreen 中,因为插件的文档说应该处于应用程序的早期状态
我希望应用程序打开 settings screen 和 print 'settings',但如果应用程序已经打开,它会打开 main screen 和 print 'settings',但如果不是,它会尝试打开某些东西然后关闭自己(不是force close留言)
【问题讨论】: