Flutter-踩坑细节

1.Container中使用height: double.infinity,上层必须为弹性布局,如Expanded、row、colum。
2.TextField 不能直接放到 Row 里面,需要添加Expanded,
去除内边距:TextField - decoration - contentPadding: EdgeInsets.all(0),
3.Container中color不能与装饰中的color同时出现。
4.每次插件或者相关环境更新都需要 flutter doctor检查修复。
5.onTap点击事件无效或者卡顿的时候,考虑给下层的Container添加color。
6.Row、Colum主轴方向默认的长度是最大的。
7.tab中添加自定义控制器,需要抽出来单独写,例如with TickerProviderStateMixin, 因为tabcontroll只能继承一个with。
8.Flutter中TabBarView切换状态保存
9.避免setState导致的内存泄漏:
if (mounted) {
setState(() {});
}

TabBarView会添加N多个子的Widget控件,直接在这些子控件中,需要保存状态的控件的State实现一下 AutomaticKeepAliveClientMixin ,然后 wantKeepAlive 返回一个True就可以可以了,保存代码,模拟器刷新后,会发现切换状态不会重置状态了

json序列化:(map转实体)
dependencies:
json_annotation: ^3.0.0
analyzer: 0.38.2
dev_dependencies:
flutter_test:
sdk: flutter
build_runner: ^1.7.0 // 暂时不要改变
json_serializable: ^3.2.0 // 暂时不要改变

1.网页中生成实体
https://caijinglong.github.io/json2dart/index.html
2.把生成文件导入项目中
2.执行命令,生成.g文件
Terminal运行:flutter packages pub run build_runner build --delete-conflicting-outputs(删除后重建)

await关键字必须在async函数内部使用
调用async函数必须使用await关键字

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容