17.请求数据保留
前言
前文中可以发现一个问题,每次切换页面,都会重新请求数据。而实际开发中,我们会对数据进行保留,在需要的时候再进行数据更新。

Mixin
调整继承关系
多继承 AutomaticKeepAliveClientMixin
重写 wantKeepAlive
调整 build 方法
调整 MyHomePage (标签Tab页)
原先我们的切换Tab的逻辑是这样的:
并非所有的子页面的 widget 都在标签容器的 widget 树中,导致每次切换都会去重新生成渲染。
我们需要做如下调整:
构建
PageController调整
Body为PageView, 并绑定PageController和pages通过
PageController切换子页面
检查效果

PageView
滑动切换子页面

在使用总突然发现可以通过滑动切换 PageView 的子页面。但是底部的标签选中没有变化,下面我们来处理一下。
同步标签切换
通过 onPageChanged 来监听页面的切换,同步修改选中标签。
关闭滑动切换
当然,不需要滑动的话可以通过 physics 来进行关闭。
Last updated
Was this helpful?