我已经从仪表板导航到名为"A"的某个屏幕。在该屏幕中,我使用ListView Builder显示了一个列表。在其中,单击ListView中的项目导航到另一个名为"的屏幕;B";。当我按下屏幕中的后退按钮时;B";导航到Dashboard。但它必须导航到屏幕";A";。请帮我解决这个问题。
在Dashboard中,我使用以下代码导航到屏幕;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";,导航到Dashboard。但我需要导航到";A";根据背景资料。
请帮帮我!
如评论中所述。使用CCD_ 1解决了这个问题
但你为什么一开始就面临这个问题?因为您的应用程序中有多个MaterialApp
。您必须只保留main.dart
中的一个作为根小部件。所以你有两个选择:
- 仅使用一个
MaterialApp
作为根小部件并调用Navigator.of(context).push(...)
- 具有多个
MaterialApp
并使用Navigator.of(context,rootNavigator: true).push(...)
如果您需要我的建议,请使用1。