如何防止 Flutter 中的导航循环

How To Prevent Navigation Loops In Flutter

在我的应用程序中,我总共有 13 个屏幕,其中一些有指向其他屏幕的链接,我还有一个抽屉,其中有大部分屏幕的链接。

下图显示了我在应用程序中想要的唯一导航流程:

如您所见,只有 homewarehousesclose expiry 屏幕链接到其他屏幕。但是因为抽屉存在于每个屏幕中,所以我现在可以从 warehouses 导航到 products 然后 warehouses 然后 products 等等,或者从 close expiry 导航到 warehousesproductshomeclose expiry直到时间结束.

我想要的是:每当用户导航到 home 屏幕直接链接之一时,屏幕堆栈应仅包含 home 屏幕和导航到屏幕及其后代的屏幕。

换句话说,我想确保屏幕堆栈只有应用程序中任何屏幕的一个实例。我不想循环,我也不想摆脱抽屉。

有什么方法可以实现吗?

提前致谢。

我发现的唯一方法是在转到任何其他屏幕之前始终导航到主屏幕,这样我们就可以准确地实现问题中的要求