• 首页
  • 感性生活,理性思考。


我在公司犯下的技术错误

git 合并分支 [低级程度:5星]

由于合并时,我没有看自己当时所在的分支,就去合并了,导致把功能合反了。
解决:使用source tree,一定要仔细,时刻告诉自己,提交代码是很重要的时刻,不能分心

listview gridview SingleChildScrollView[低级程度: 3星]

因为本身就是再滑动的组件,如果嵌套会出问题的
解决:使用Sliver组件

sliver组件与非sliver组件问题 [低级程度: 2星]

当页面需要横向纵向滑动时且多组件共同存在,需要定制滑动操作。
解决:
Sliver在前面讲过,有细片、薄片之意,在Flutter中,Sliver通常指可滚动组件子元素(就像一个个薄片一样)。但是在CustomScrollView中,需要粘起来的可滚动组件就是CustomScrollView的Sliver了,如果直接将ListView、GridView作为CustomScrollView是不行的,因为它们本身是可滚动组件而并不是Sliver!因此,为了能让可滚动组件能和CustomScrollView配合使用,Flutter提供了一些可滚动组件的Sliver版,如SliverList、SliverGrid等。实际上Sliver版的可滚动组件和非Sliver版的可滚动组件最大的区别就是前者不包含滚动模型(自身不能再滚动),而后者包含滚动模型 ,也正因如此,CustomScrollView才可以将多个Sliver"粘"在一起,这些Sliver共用CustomScrollView的Scrollable,所以最终才实现了统一的滑动效果。

对象+! 强制非空的使用 [低级程度: 5星]

如果对象为空时,APP会闪退,慎重使用!慎重使用!慎重使用!慎重使用!
即使要用,也要在前面做非空判断逻辑。

column 里的listview没套一层容器 [低级程度: 2星]

有时候要做横向滑动list,但结果没反应,白屏
解决:套一层container并设置height

tabbar与tabview要共用tabcontroller才能协作 [低级程度: 2星]

不要分开赋值,要共用同一变量参数
解决:在两个class外设置同一变量

tabbar与tabview数量问题 [低级程度: 1星]

有时候要拿到接口后才知道数量,这样就需要先初始后赋值
解决:先在initstate里初始化一个0数量的,注册要在state里加with mixin,然后拿到接口数据后再赋值给tabcontroller,并setstate

singlechildscrolerview里面组件太多性能低换listview [低级程度: 1星]

sccv是一次性加载,如果有很多组件时,性能会不好;所以用listview代替,因为listview是加载到再渲染的。这里要注意数量问题,以及封装的组件。我试过组件封装重重渲染问题;
解决:一定要注意封装的细粒度,防止重复渲染。如果明确数量,直接赋值。

本文链接:

https://chao.asia/tech/156.html

1 + 2 =
快来做第一个评论的人吧~
lamu.png