这是 todoline++ 项目开发过程中遇到的问题系列, 记录下来供大家参考。
本篇记录一些开发中遇到的疑问:
todoline++ 官网请看这里: https://todoline-plus-plus.github.io/
1 flutter state 的声明周期?
state 的生命周期有 3 个阶段:
初始化
开始 –> 构造函数 –> initState –> didChangeDepandencies –> build状态改变
update –> diChangeDepanedencies –> build结束
结束 –> deactivate –> dispose –> 结束
来源: jianshu.com/p/ed220761f7b1
2 flutter 有图文按钮吗?
请使用下面的方法来构建图文按钮:
1 | TextButton.icon(); |
3 TextButton 中的 style 如何赋值?
1 | TextButton.style.backgroundColor: MaterialStateProperty.all(Colors.green), |
来源: stackoverflow.com/questions/66542199/what-is-materialstatepropertycolor
4 TextButton.icon 如何修改他的宽度?
外面套一层 SizedBox, 然后给 SizedBox 设置宽度即可
5 TextButton.icon 如何修改圆角
这个实际上等于 shape 如何使用。
1 | TextButton.icon( |
6 flutter 项目, 开发 windows 应用, 如何修改标题栏的名称?
一般情况下, flutter 默认开发出来的 windows 应用程序的标题栏的名称就是项目名称, 但有时候我们想要更改标题栏的名称, 怎么办?
文件名: windows/runner/main.cpp
修改的内容:
1 | if (!window.CreateAndShow(L"todoLine++", origin, size)) { |
上面的 todoline++, 修改成你自己的名称就可以了!
7 flutter 如何播放音乐?
1 | import 'package:audioplayers/audioplayers.dart'; |
来源: blog.csdn.net/moasad/article/details/119931986
8 flutter Text 组件文字太长怎么办?
A) Text 外面套一个 Expanded 组件
B) 设置 overflow = TextOverflow.ellipsis
来源: blog.csdn.net/weixin_42354735/article/details/109473211
9 flutter 如何弹出文件选择框?
请使用 file_picker 插件, 下面是官方源码:
1 | FilePickerResult? result = await FilePicker.platform.pickFiles(); |
10 为什么命名构造器没有生成对象?
下面的两个构造器中, Config.from 无法生成 config 对象
1 | Config(this.id, this.tag, this.key, this.val, this.remark); |
正确方法:
1 | Config.from(User user, this.tag, this.key, this.val, this.remark) { |
注意:
- 不在命名构造器调用同名构造器
- 在命名构造器的参数中直接写上 this.xxx 表示直接对这个成员变量赋值。
11 flutter 开发使用 sqlite, 如果开发的是 windows 桌面应用程序, 那么 sqlLite 的数据库文件存放在哪里?
老实说, 一开始我也是一头雾水, 不知道该怎么办, 后来我看到这篇文章:
codaffection.com/flutter-article/view-sqlite-db-in-flutter-application/
他说, 数据库文件肯定存在于某个地方, 我灵光一闪: everthing, 果然, 找到了他的地址:
{your-project-folder}.dart_tool\sqflite_common_ffi\databases\xxx.db
12 floor 构建代码的语句太长记不住怎么办?
floor 是 flutter 中用来映射 sqlLite 数据库的 ORM 框架, 当我们写好抽象类了以后, 就需要运行下面的命令, 然后 floor 才会生成我们需要的代码:
1 | flutter packages pub run build_runner build |
但是这个命令也太长了, 不容易记住, 而且每次都这么敲的话也太麻烦了, 不是吗?
有什么办法可以帮我们记住这个代码呢?
我的办法是, 编写脚本文件, windows 中只需要写好 .bat 文件, 然后就可以执行了, 再然后我们使用效率工具, 比如 utool, wox 来运行该脚本文件即可.
下面是 .bat 脚本文件的内容:
1 | cmd /c "cd /d D:\xxx\project_name&&flutter packages pub run build_runner build" |
注意:
- D:\xxx\project_name 是项目文件夹名称, 请替换成你自己的就行
- 项目文件夹名称和 cmd 命令之间请使用 && 来隔开
- 效率工具如何运行.bat 文件? 请各自参考相关说明文件, 我使用的是 wox, 安装插件 wox.pulgin.runner 即可配置。
13 构造器中添加 factory 修饰符是什么意思, 他跟不添加有什么区别?
flutter 中的类, 有下面三种:
同名构造器
构造器的名称和类名称一样命名构造器
类名.xxx 即为命名构造器, 他的作用跟同名构造器一样, 方便定义多个构造函数工厂构造器
在构造器的前面加一个 factory 即为工厂构造器, 工厂构造器的作用有 3 个:
A) 方便缓存, 同一个构造器生成一个实例对象
B) 方便调用子类
C) 创建单利模式
14 floor 中, 如果表中某个字段需要唯一, 不允许重复怎么办?
1 | "", indices: [Index(value: ['key'])]) (tableName: |
如果您觉得这篇文章对您的学习很有帮助, 请您也分享它, 让它能再次帮助到更多的需要学习的人. 您的支持将鼓励我继续创作 !