我在项目中实现了Quick_actions插件,我想打开一个特定的屏幕,但是在快速处理程序功能中,导航器不起作用。虽然是Try-Catch
,但异常显示上下文showld来自导航器,但是我使用的是我的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
消息)
答案 0 :(得分:1)
在以下示例中,
快速使用MainView将打开“登录”小组件,然后直接单击应用将打开“主页”小组件
您可以参考https://www.filledstacks.com/snippet/managing-quick-actions-in-flutter/了解详情
完整代码
if(stats contains approve)
List = List.dbset.where(x => x.id.stats == approved);