在以前项目中,onPageShow和onPageHide由开源框架Flutter_boost提供,在此次项目中,创新性的采用了fusion框架,fusion框架同样提供了类似的方法,但在实践中发现,当
在以前项目中,onPageShow和onPageHide由开源框架Flutter_boost提供,在此次项目中,创新性的采用了fusion框架,fusion框架同样提供了类似的方法,但在实践中发现,当flutter页面相互replace或者多次pop页面后,onPageShow不会调用,这就导致了诸多bug,于是,需要探索如何了解一个widget/page是否可见。
首先试验了flutter官方提供的WidgetBindingsObserver,发现其AppLifecycleState有四种状态:
经过测试发现,在用户回到桌面或者锁屏,可以监听到paused事件,但是push到新的flutter页面,或者从其他flutter页面pop到本页面,没有生命周期变化,因此,此方案不可行。
观察发现,flutter的动画,在应用退到后台/push到其他页面等情况,动画时间仍在流逝,但动画绘制会停止(节约性能),这就代表着,flutter引擎是能知道某个widget是否可见的,在flutter中使用动画,通常需要使用with关键字混入SingleTickerProviderStateMixin,那么看来答案,就在此类中了。
查看源码:
来源地址:https://blog.csdn.net/qwe25878/article/details/132323951
--结束END--
本文标题: Flutter如何知道页面/组件可见?
本文链接: https://lsjlt.com/news/423388.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-01-21
2023-10-28
2023-10-28
2023-10-27
2023-10-27
2023-10-27
2023-10-27
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0