xujiyou / zhihu-flutter

Flutter 高仿知乎 UI,非常漂亮,也非常流畅。
3.28k stars 569 forks source link

主页的5个tab对应的页面好像每次切换都会被移除? #6

Closed lizhuoyuan closed 5 years ago

lizhuoyuan commented 6 years ago

我看了一下代码, 发现是根据index来决定加载哪个页面的 这样是不是不太好? 每次重新滑到页面的时候,这个页面都会重新加载,没有复用。

lizhuoyuan commented 6 years ago

不是来挑刺的。。 就是想找个合适的方案实现这个功能,正好看到这个项目。 如果使用tabbarView,也是会在切换到其他tab时移除当前的widget, 使用IndexStack的话,是常驻内存了,但实现方式是把所有页面一起加载出来叠加在一起,根据index选择把哪一个放在最上面展示给用户。但总觉得应该有更好的方式。

xujiyou commented 6 years ago

是的,这个项目是我初学时练习用的,当初没想太多,能把效果做出来就行,现在有更好的方式了。

我现在在做的项目是自己写的一个底部导航栏,没用官方的底部导航Widget。 具体实现可见:https://zhuanlan.zhihu.com/p/42374504

我在项目中根据这个demo改良的,能左右滑动,也不会在切换页面时重新生成新界面。原理应该和IndexStack差不多,我没用过IndexStack。

zinwalin commented 6 years ago

是的,这个项目是我初学时练习用的,当初没想太多,能把效果做出来就行,现在有更好的方式了。

我现在在做的项目是自己写的一个底部导航栏,没用官方的底部导航Widget。 具体实现可见:https://zhuanlan.zhihu.com/p/42374504,

我在项目中根据这个demo改良的,能左右滑动,也不会在切换页面时重新生成新界面。原理应该和IndexStack差不多,我没用过IndexStack。

链接打不开.

RedSevenMale commented 5 years ago

我也想解决这个问题,没有头绪

appdev commented 5 years ago

用状态管理来实现这个功能就可以了。

wxf4150 commented 5 years ago

没有访问后台 api数据 的demo . 状态管理。 全部是 练习布局的内容, 不过 确实布局的很好看。

lizhongyi commented 5 years ago

看了这嵌套的代码真的有点怕,想起来以前的nodejs中的回调地狱

KagurazakaHanabi commented 5 years ago

AutomaticKeepAliveClientMixin 就行了,仔细看文档

hike2008 commented 5 years ago

是的,这个项目是我初学时练习用的,当初没想太多,能把效果做出来就行,现在有更好的方式了。 我现在在做的项目是自己写的一个底部导航栏,没用官方的底部导航Widget。 具体实现可见:https://zhuanlan.zhihu.com/p/42374504, 我在项目中根据这个demo改良的,能左右滑动,也不会在切换页面时重新生成新界面。原理应该和IndexStack差不多,我没用过IndexStack。

链接打不开.

注意看地址栏,把链接后面多余的,去掉即可