记一次Flutter踩坑之旅

Flutter Offstage+Swiper组件踩坑

Flutter的Offstage+Swiper组件踩坑记录。

界面

一个列表页,点击不同的item请求后台返回图片集合,然后使用swiper组件实现轮播图式的显示功能。
在这里插入图片描述
列表界面(如上)。

在这里插入图片描述
返回结果用swiper组件实现轮播图展示。(如上图)

bug截图

在这里插入图片描述
点击第一个item(瑞雯)后进入展示页显示的异常。(如上图)
在这里插入图片描述
log信息报的异常。(如上图)

bug分析

在这里插入图片描述
代码片段。(如上图)
使用了offstage组件控制swiper的显示与隐藏,当loading结束并且后台请求成功返回有数据时,显示该组件,反之隐藏。

在这里插入图片描述
在这里插入图片描述

再根据log信息点进去查看,猜测应该是并无数据时,scrollController并无可滑动的ScrollPosition。但是后台请求数据是有返回的(文字有显示),只是图片没有显示。而图片是用Swiper组件轮播显示的,外层的父组件Offstage通过offstage属性控制显示或隐藏,但是不管显示还是隐藏,这个组件都要渲染的。

bug修改

在这里插入图片描述
在这里插入图片描述无数据时则不创建Swiper组件,有数据时再创建。(如上图)

在这里插入图片描述
再次运行正常显示了。(如上图)

小结

猜测Offstage不管显示隐藏都会渲染组件,Swiper创建后,item无数据,所以报了“ScrollController not attached to any scroll views”异常。

未解决问题

刚学Flutter不久,头一次写博客,纯粹为了记录一下,因为还有一处疑问暂时没有找到解决点。在追踪bug的过程中,尝试了很多种可能。
1:点击第三个item(盲僧李青),能够进入到图片界面并成功显示(图2),也并未报任何异常。
2:查看后台数据时,李青item的请求结果配的是10条数据,瑞雯item的请求结果配的是9条数据,劫item(第二个item)的请求结果配的是6条数据(也未能成功展示,报了同样的异常)。于是尝试多次后发现当返回数据长度<=5或者=10时是可以正常显示的,其他数据长度都报同样的异常。
3:在第一个列表界面使用了ListView,设置了scrollerController,并且在第一个列表界面一次请求结果配的是5条数据,查资料的过程中看有的说scrollerController可以共用,所以不知道第一个界面scrollerController是否有影响。
暂作此记录。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值