如何解决Flutter Web导航器/覆盖布局问题
当我启动第一个Flutter Web业务应用程序时,我的目标是将MaterialApp导航器放置在我希望加载所有页面的地方。因此,我使用MaterialApp构建器来完成该任务。该构建器为我提供了上下文和导航器,我可以返回所需的小部件树。
一切都很好,我创建并返回了一个类似于以下代码的小部件树:
Scaffold(
appBar: MyAppBar(),body: Row(children: [
MySideBar(),Expanded(
child: navigatorFromTheMaterialAppBuider,),]),)
通过这种方式,我有了固定的侧边栏和应用栏,所有页面都被加载,而固定部分上没有任何重建。
当我需要在侧边栏中放置一些依赖于Overlay类的小部件时,问题就开始了。由于侧边栏位于MaterialApp导航器的外部,因此无法找到叠加层。进行这种布局的另一个副作用是,放置在我页面内并因此放置在导航器内的任何小部件都会显示其覆盖项,并带有侧边栏宽度和应用栏高度的确切偏移量。
为避免更改布局结构并使appbar和sidebar成为Web应用程序每个页面的一部分,我想知道是否有一种方法可以在导航器上方(甚至在MaterialApp小部件上方)放置一个叠加层,可以覆盖整个小部件树的MaterialApp导航器覆盖。
我创建了一个dartpad示例代码以使其更加清晰。 https://dartpad.dev/140e1e8a9ca0620301b43d0313e20bdb
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。