网站
FlutterApp代码结构
1 | flutter_app |
1 | lib |
文件夹 | 作用 |
---|---|
common | 工具类,比如方法类、网络接口类、全局静态类等 |
l10n | 国际化相关的类 |
models | Json文件对于的DartModel |
states | 保存App中需要夸组件共享的状态类 |
routes | 存放路由页面类 |
widgets | APP内封装的一些Widget组件 |
积累
开屏广告返回到首页
1 | //连续两次push |
SafeArea
可以看到SafeArea通过MediaQuery来检测屏幕尺寸,使应用程序的大小能与屏幕适配。
然后返回了一个Padding Widget 来包裹住我们编写的页面。这样我们的页面就不会被异形屏幕给遮挡住了。
滚动组件嵌套问题
例如两个listview嵌套在一起,会报错
1 | Viewports expand in the scrolling direction to fill their container |
被嵌套滚动组件 用Expanded 包一下。
listview 嵌套column问题
RenderFlex children have non-zero flex but incoming height constraints are unbounded.
原因:
ListView垂直方向的计算是包裹子View的,也就是说子View必须有一个明确的高度,或者尽可能小的高度,而不能是无限高。
Row是横向排列,在Row中使用Expanded是填充水平方向的剩余空间,这和ListView的这一特性没有冲突,可以使用。
而Column是竖直排列,在Column中使用Expanded是填充竖直方向的剩余空间,这将和ListView的这一特性发生冲突,因为ListView将无法计算自己的子View的高度
解决方案:IntrinsicHeight可以根据子控件的高度,智能调整自身高度.
FutureProvider 不可以更新数据
FutureProvider 只是简单的FutureBuilder 包装,不具备数据更新能力。
###