Flutter返回一个屏幕,之前的屏幕已被推到其导航器中

ma8fv8wu  于 2023-01-21  发布在  Flutter
关注(0)|答案(2)|浏览(123)

我有以下情况:
我有一个Onboarding用户流,比如说由5个屏幕组成,用户在每个屏幕上提供一些个人详细信息,每个屏幕后的详细信息将保存到数据库中,然后用户将进入主屏幕。
预期行为:当用户提供详细信息直到例如屏幕3/5,然后退出应用程序时,流程应从屏幕3/5恢复,并且有可能返回屏幕1或2以改变已经提供的详细信息。
我在navigator文档中找不到任何对我有帮助的东西,如果您能为这种边缘情况提供至少一个文档线索,那将是非常棒的。
基本上,我需要在用户重新进入应用程序时"在后台"恢复屏幕堆栈,并从屏幕i/n "显示"堆栈(其中i是用户在上一会话中没有提供细节的第一屏幕),具有在堆栈中导航回到i之前的屏幕的可能性,即使那些屏幕在当前会话中没有向用户示出。或者甚至更简单地说,我需要在一个新的应用会话中恢复一个屏幕堆栈,并根据数据库中持久化的数据从导航器堆栈的任何位置向用户显示一个屏幕。

z9smfwbn

z9smfwbn1#

您可以使用flutter中的PageView小部件来完成您的入职流程,这样您就可以根据数据库条目保存用户所在的页面,并且可以根据索引直接跳转到您想要的特定页面,这样您就不必担心在屏幕中导航。
以下是页面视图小工具实施的链接:https://www.geeksforgeeks.org/pageview-widget-in-flutter/

67up9zun

67up9zun2#

我认为首先你需要存储用户已经输入的数据和他所在的屏幕号,你可以使用shared_preferences这样简单的代码。
然后,您必须使用routes导航到特定屏幕。

相关问题