November 19, 2022
Flutter 使用报告
Flutter 介绍
Flutter
是 Google
推出并开源的移动应用开发框架,主打跨平台、高保真、高性能。开发者可以通过 Dart
语言开发 App
,一套代码同时运行在 iOS
和 Android
平台。Flutter
提供了丰富的组件、接口,开发者可以很快地为 Flutter
添加 Native
扩展。
在此记录些常用资料:
使用 index.dart 文件简化导入
规定文件目录结构如下:
则在 lib/index.dart
内 export
所有子文件夹下的 index.dart
文件:
在 pages/index.dart
内 export
所有该文件夹下的 *.dart
文件:
在所有 *.dart
文件(包括 main.dart
文件)内尽绝大可能 import 'package:<项目名>/index.dart';
即可简化导入。
同时当要引入外部包时,只要在 lib/index.dart
文件内导入即可,当然,有时会出现不同包之间的类名冲突,此时在需要使用到该包的地方单独 import
即可,或者使用 hide/show
语法限制,具体例子如下:
版本号构建问题
Flutter
使用 android/app/build.gradle
来打包 apk
, 且其引入了 flutter.gradle
并指向 flutter.groovy
如 D:\Flutter\packages\flutter_tools\gradle\src\main\groovy\flutter.groovy
约在 flutter.groovy
的 993
行
我们知道 flutter
将判断是否使用了 'split-per-abi'
命令, 是则在 ABI_VERSION
选择一个版本 *1000
再加上构建号
官方解释见 此链接
我们只需修改 ABI_VERSION map
如下
注意若进行了 Flutter
版本更新,应重新修改该 flutter.groovy
文件
vivo
系手机无法调试 Flutter
程序
vivo
系列手机升至 Origin3
后发现调试 Flutter
应用卡在启动页,并且没有任何报错,详见 github issue,简化自 此链接
答案是 vivo
系统发大病连日志都隐藏,我们需要提供 IMEI 1
码至 vivo
官方进行授权
- 拨号盘输入
*#06#
复制 IMEI 1
值
- 添加企业 QQ 号
3002261823
(或通过 官方网站 联系)
- 提交相关问题和信息,要求一键授权自己的手机
- 等待授权成功后拨号盘输入
*#*#112#*#*
,“右上角按钮”->“更多”->“一键授权”
即可
AlertDialog
content
传入 ListView
时在调试模式下报错
这是个怪问题,release
版本正常运行,解决方法如下:
ard 语法
详见 此页面
代码规范
-
尽可能使用 ''
而不是 ""
来表示字符串
-
尽量不使用 StatefulWidget / ConsumerStatefulWidget
而是 StatelessWidget / ConsumerWidget
-
尽量不要使用 const MyWidget({Key? key}) : super(key: key);
而是 const MyWidget({super.key});
,对于其他变量也是如此
-
对 StatelessWidget / ConsumerWidget
组件,其结构如下
-
对 StatefulWidget / ConsumerStatefulWidget
组件,其结构如下
感想