颤振:按下后退按钮关闭两个屏幕



我已经从仪表板导航到名为"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中的一个作为根小部件。所以你有两个选择:

  1. 仅使用一个MaterialApp作为根小部件并调用Navigator.of(context).push(...)
  2. 具有多个MaterialApp并使用Navigator.of(context,rootNavigator: true).push(...)

如果您需要我的建议,请使用1。

相关内容

  • 没有找到相关文章

最新更新