如何解决在显示演练之前显示主屏幕
initState 中使用了 shared_preference 包来判断是否是第一次启动。
当我执行以下代码(简化)时,它会转换到 waklThrou 屏幕,但会显示主屏幕。
你有什么好的想法吗?
list(itertools.combinations('abcdefg',5))
[('a','b','c','d','e'),('a','f'),'g'),'e','f',('b',('c','g')]
解决方法
由于 WidgetsBinding.instance.addPostFrameCallback
是回调,因此将传递该代码并执行构建方法。
一旦调用回调,导航器将推送新屏幕。
避免主屏幕显示的一个简单解决方案是在正文中添加一个加载指示器。回调中的有状态变量将在加载完成后更改加载状态。
,另一种选择是使用 Completer
(例如 Completer walkThrough
)在小部件外部(例如在 BLOC 中)保持漫游屏幕的完成状态,并在您的主小部件中使用 {{1 }} 构建一个空白页面(如果 FutureBuilder
Future 尚未完成)或主屏幕(如果已经完成)。有关此 UI 范例的示例,请参阅 FutureBuilder。
在 BLOC 中,您在启动时创建 walkThrough
完成程序,检查首选项并
- 触发演练屏幕,并在演练完成后使用
walkThrough
完成walkThrough
完成器并将 UI 弹回主屏幕,或 - 如果您发现演练已完成,请立即完成完成。
请参阅 Completer 以了解其背后的想法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。