Flutter高效率开发经验

通用/共性

  1. 良好的命名是关键;
  2. 首先配置MaterialApp中的全局主题(文字、颜色、装饰器、Style、Theme);
  3. 配置通用的工具、常量、色值、TextStyle、尺寸;
  4. 梳理通用/共性UI(出错、无数据、下拉刷新、普通列表、Tab列表);
  5. 梳理通用/共性Widget,Widget的值尽量用final的属性,而不是创建对象;
  6. 列表的Item尽量使用明确的尺寸,而不是根据Item的内容计算,这样可以提高渲染速度;
  7. 用户输入的内容或触发的数据应保存在State中,因为重建界面需要这些数据;
  8. 绝大部分Widget都是无状态的(除非是:动画控制器、Tab控制器、TextField控制器);
  9. 如果一棵树在上层同时创建了多个ChangeNotifier,这几个ChangeNotifier一定要是不同的类,千万不要图省事复用同一个类,否则树中Widget会不知道要用哪个Model(爸爸的兄弟们都长一样,儿子不知道哪个是亲爹);

常见错误

Error: Another exception was thrown: type ‘MyApp’ is not a subtype of type ‘StatelessWidget’

如果App的页面从 StatefulWidget 更改为 StatelessWidget,需要重新启动应用程序才能使这些更改生效。因为调用 initState() 方法,同理更改Flutter Widget的状态相关属性时,也需要重新启动应用程序才能使这些更改生效。

Error: Could not find the correct Provider above this Consumer Widget

一般是没有给Consumer设置泛型T,导致Consumer不认识祖先Provider提供的T

Android Studio 打开Flutter 项目找不到Android设备

首先确认你最近是否修改过Android SDK的文件路径,然后查看你的Windows电脑或者Mac的ANDROID_HOME环境变量是否发生了改变,修改为正确路径然后重启即可;

flutter/third_party/txt/src/minikin/FontCollection.cpp(95)] nTypefaces == 0

[ERROR:flutter/third_party/txt/src/minikin/FontFamily.cpp(184)] Could not get cmap table size!

引用的字体或者图标不存在

你可能感兴趣的:(Flutter)