采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
在RouteDelegate中发送页面改变的通知 "HiNavigator.getInstance().notify(tempPages, pages)" 新的界面initState中注册了listener,但是,发送通知的时候页面还没有执行initState方法,所以当前listeners中并没有相应的listener,因此 收不到通知,作者没有出现这个问题吗?
通知如果发生在listener注册之前是收不到通知的,这个是正常逻辑,页面变化监听通常用在已打开的页面中监听其它页面的打开和关闭。
是诶,之前确实思维进死胡同了,感谢作者的回复。 在此还有一个问题想问一下: 就是在push到下一个页面后,会生成一个新的pages,我debug发现,之前的页面page也会被重新build,这个能避免吗?我看Flutter Performance显示很多widget被重新build,对性能影响大吗
性能影响不大,如果不想重建已经打开的页面可以这样修改路由栈的生成。
感谢作者的回复,这两天在研究Navigator2,发现一个纠结的问题,虽然页面已经可以使用Navigator2进行跳转了,但是发现Flutter提供的一些跳转方式,如showCupertinoModalPopup,这种跳转方式依然采用的是Navigator1的跳转方式,跟项目当前使用的Navigator2是不同的路由管理,这个有什么办法解决吗? 还是说用了Navigator2,就要摒弃Navigator1的所有跳转方式。
登录后可查看更多问答,登录/注册
一次性掌握Flutter高阶技能+商业级复杂项目架构设计与开发方案
1.1k 2
1.5k 8
1.3k 4
1.9k 5
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号