我已经从仪表板导航到“ A”屏幕。在该屏幕中,我使用ListView Builder显示了一个清单。在那,单击ListView中的项目导航到另一个名为“ B”的屏幕。当我在该屏幕“ B”中按返回按钮时,其导航至仪表板。但是它必须导航到屏幕“ A”。请帮助我解决此问题。
在仪表板中,我使用下面的代码导航到屏幕“ A”,
_showSnackBar(BuildContext context, Item item) {
switch(item.name)
{
case "Disputes":
Navigator.push(context, MaterialPageRoute(builder: (context)=> Disputes()));
break;
}
}
}
在屏幕“ A”中,我使用下面的代码导航到屏幕“ B”,
Card(
child: ListTile(
onTap: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) =>
SubmitDisputes(disputesId: disputeResList[index].id.toString())));
},
trailing: Icon(
Icons.remove_red_eye),
));
}),
),
),
当我在屏幕“ B”中按返回按钮时,其导航至仪表板。但是我需要按照后退堆栈导航到“ A”。
请帮助我!
答案 0 :(得分:0)
因此,如评论中所述。使用Navigator.of(context,rootNavigator: true).push(...)
解决了该问题。
但是,为什么您最初会遇到这个问题?因为您的应用中有多个MaterialApp
。您只需保留main.dart
中的一个作为根小部件。所以您有两个选择:
MaterialApp
作为根窗口小部件并调用Navigator.of(context).push(...)
MaterialApp
并使用Navigator.of(context,rootNavigator: true).push(...)
如果需要我的建议,请使用1。