何时在 Flutter 中使用新的 Screens 而不是 TabBarView
Posted
技术标签:
【中文标题】何时在 Flutter 中使用新的 Screens 而不是 TabBarView【英文标题】:When to use new Screens in Flutter instead of TabBarView 【发布时间】:2020-12-14 11:10:15 【问题描述】:我对 Flutter 还很陌生,我试图了解何时以及为什么需要导航到新屏幕。大多数应用程序通过所有不同的“屏幕”保持相同的 AppBar、Drawer 和 BottomNavigationBar(如果有)。只有一个 TabBarView 或者只替换 Scaffold 的 body 不是更容易吗?
我很难真正理解布线时为什么需要新的脚手架的概念。我在 Flutter 官方文档中找不到任何有用的信息,甚至 Cookbook 也向您展示了一个带有 2 个全新屏幕的 Navigation 示例,只是为了在 Scaffold 的主体内显示不同的 Text 小部件。
另外,总是重建整个 Scaffold 的效率如何?
【问题讨论】:
【参考方案1】:当你路由到新页面时,上一页存储在导航器的历史记录中,所以你只需点击Back
按钮即可轻松返回上一页。原则上,一切都取决于你需要什么。您可以使用具有自己的 Scaffold 的新页面以及具有单个 Scaffold 和不同正文小部件的页面。对于最后一种情况,您需要手动控制Back
按钮,因此这种方式在开发中足够昂贵。
【讨论】:
谢谢,确实,如果您想将状态保存在内存中,那么最好使用新屏幕。我想这完全取决于不同的用例,在某些情况下也可以使用 Tab Bar View 来保持状态。以上是关于何时在 Flutter 中使用新的 Screens 而不是 TabBarView的主要内容,如果未能解决你的问题,请参考以下文章
任何人都可以向我描述 Flutter 中 Material 和 MaterialApp 之间的区别,以及何时使用哪个?
何时在 Flutter 中持久化数据(等效于 onPause)