簡體   English   中英

Flutter 盡管路由在堆棧上,但仍彈出黑屏

[英]Flutter PopUntil Black Screen Despite Route On Stack

我正在嘗試使用 Navigator.popUntil,但我一直以空白屏幕結束。 我知道如果您彈出的屏幕不在堆棧中,則可能會發生這種情況,但對我來說不是這種情況; 我的屏幕應該在堆棧中。 我正在使用命名路線,如果這有所作為。

在此處輸入圖像描述 在此處輸入圖像描述

當用戶按下“否”按鈕時,我想彈出對話框,然后彈出刪除屏幕以返回帳戶管理屏幕,如圖所示。

          TextButton(
              child: const Text("No"),
              onPressed: () {
                Navigator.popUntil(
                    context, ModalRoute.withName(AppRoutes.accountManagement));
              }),

AppRoutes.accountManagement 定義為:

static const accountManagement = '/accountManagement';

ApplicationManagement、AccountManagement 和 DeleteAccount 頁面使用以下代碼推送到堆棧中:

  ///Called to navigate on the main, global navigator
  void _routeNavigation(String route) {
    try {
      Navigator.pushNamed(context, route);
    } catch (e) {
      DebugLog.printToConsole("Exception during navigation: Exception $e");
    }
  }

其中每個字符串定義如下:

  static const appManagement = '/appManagement';
  static const accountManagement = '/accountManagement';
  static const deleteAccount = '/deleteAccount';

似乎彈出沒有在堆棧上找到 AppRoutes.accountManagement 路由,但我不明白為什么。 這些屏幕應該嵌套嗎? 也就是說,我看到它們在小部件查看器中都處於同一級別(如圖所示)。 我做錯了什么導致 popuntil 無法識別堆棧上的路由?

嘗試像這樣彈出它

Navigator.of(context).popUntil((route) => route.settings.name == "${AppRoutes.accountManagement}");

嘗試這個:

Navigator.of(context).pop();
Future.delayed(const Duration(milliseconds: 500), () {
  Navigator.pushNamedAndRemoveUntil(context, '/accountManagement', (_) => false);
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM