如何在 flutter 中预加载路线,或者即使在屏幕外也保持加载小部件?

问题描述 投票:0回答:1

我正在使用 GoRouter 在我的应用程序的页面之间导航。我导航的路线之一是使用 QuillHtmlEditor,当我导航到它时,它需要大约 1 秒的时间来加载,并且每次用户导航到该页面时它都会重新加载。我想始终保持带有 QuillHtmlEditor 的页面加载,无论它是否在屏幕上。有没有办法轻松做到这一点?我很难找到有关如何在 flutter 中预加载路线的任何信息。

flutter quill
1个回答
0
投票

我想始终保持带有 QuillHtmlEditor 的页面加载,无论它是否在屏幕上

您可以使用

Offstage
小部件:

一个小部件,将子部件放置在树中,但不绘制任何内容,不使子部件可用于命中测试,也不占用父部件中的任何空间。

Offstage(
      offstage: _offstage,
      child: Container(
        child: Text('Hello World'),
      ),
    ),

或者,作为替代方案,您可以使用

IndexedStack
:

显示子项列表中的单个子项的堆栈。 显示的子项是具有给定索引的子项。堆栈始终与最大的子级一样大。


Scaffold(
      body: IndexedStack(
        index: _currentIndex,
        children: <Widget>[
          Widget1(),
          Widget2(),
          // ... other pages
        ],
      ),
    )
© www.soinside.com 2019 - 2024. All rights reserved.