在Flutter中保持路径活动

x759pob2  于 2023-02-25  发布在  Flutter
关注(0)|答案(2)|浏览(96)

我有一个flutter应用程序,可以看到几张卡片。这些卡片是可点击的,并将显示一个自定义查看器的InAppWebView,它存在于我链接到的网站上。这个InAppWebView的加载是相当繁重的应用程序,但是,我想尽可能预装这个。
很难给予很多细节,因为这是工作相关的私人信息,所以我不能说得太具体。我也是这里唯一一个与Flutter合作的人,所以不能指望同事们的建议。
我希望减少InAppWebView的加载时间,方法是在后台打开它,然后切换到正确的路径,而不是从头开始初始化它。这里的问题是URL会更改,但可以在视图内部处理,而不是创建一个全新的InAppWebView。
简而言之:如何在Flutter应用程序的后台创建一个widget/route,并在必要时切换到它?

efzxgjgh

efzxgjgh1#

使用IndexedStack来实现这一点。
创建要交换的小部件列表(并保持其状态)

final viewRoutes = const <Widget>[
    Screen1(),
    Screen2(),
    Screen3(),
 ];

然后使用IndexedStack交换它们

@override
  Widget build(BuildContext context) {
    return Scaffold(
      body: IndexedStack(
         index: 0, // <--- change this depending on the page
      ),
    );
  }
8xiog9wr

8xiog9wr2#

也许您可以使用StackVisibility小部件,例如:

bool _isWebPageVisible = false;

Stack(
  children: <Widget>[
    MainWidget(),
    Visibility(
      visible: _isWebPageVisible,
      child: WebPageWidget()
  ]
)

您可以随时更改_isWebPageVisible。当WebPageWidget可见时,它将出现在MainWidget的上方。

相关问题