Flutter基本概念
- 一切皆是Widgets
- 多组件容器(Row、Column、Stack、Wrap)
- 单组件容器(Container、Padding、Center、Align)
- Flutter组件的规律
Widgets状态
-
stateful(有状态)
当创建一个能随时间动态改变的widget,并且不依赖于其初始化状态。
eg:Image
-
stateless(无状态)
当创建的widget不需要管理任何形式的内部state时,则使用StatelessWidget。
eg:Text
-
注意:
- 创建一个Stateful Widget需要两个类,分别继承自StateFulWidget和State
- state对象包含了widget的state和widget的build()方法
- 当widget的state改变的时候,当调用setState()方法时,框架就会去调用build方法重绘widget
-
Code示例
dartvoid main() => runApp(MyStatelessWidget(text:"StatelessWidgetExample")); class MyStatelessWidget extends StatelessWidget { final String text; MyStatelessWidget ({Key key, this.text}):super(key:key); @override Widget build(BuildContext context){ return Center( child: Text( text, textDirection:TextDirection.ltr, ), ); } }
运行和调试
-
打印日志
print
-
断点
-
Dev Tool
VSCode插件
-
Flutter
扩展增加对有效编辑、重构、运行和重新加载Flutter移动应用程序的支持
-
Dart
扩展支持Dart编程语言
-
Flutter Widget Snippets
帮助Flutter和Dart参阅开发
-
bracket-pair-colorizer-2.colors
1)是常用flutter类和方法的集合
2)提高开发速度
3)消除样板
4)支持复杂的小部件
Flutter常用命名
-
flutter doctor
诊断当前的开发环境,有什么配得不对的
[x]HTTP Host Availability
1)打开文件:flutter\packages\flutter_tools\lib\src\http_host_validator.dart
2)替换链接:
https://maven.google.com/ 改成 https://dl.google.com/dl/android/maven2/
kPubDevHttpHost的值 **改成 ** https://pub.flutter-io.cn/
kgCloudHttpHost的值 改成 https://storage.flutter-io.cn/
3)删除文件:flutter\bin\cache\flutter_tools.snapshot
[x]Android Studio (version 2021.2)
flutter config --android-studio-dir <Android studio目录路劲>
[x]cmdline-tools component is missing
Sdk下载:Android SDK Command-line Tools(latest)
[x]Android license status unknown.
控制台输入(全程输入Y):flutter doctor --android-licenses
-
flutter create xxx
创建flutter项目
-
flutter run -d iPhone
选择编译运行的环境-d(device)
-
flutter build xxx
打包flutter项目
-
flutter devices
查看当前可以运行的环境
-
flutter config
1)查看flutter的配置信息
2)添加(--no-analytics):在发送分析数据之前,禁止分析数据的统计
3)添加(--enable-analytics):启动匿名分析
4)添加(--disable-analytics):禁用匿名分析
5)添加(--android-studio-dir <Android studio目录路劲>)
6)添加( --enable-windows-desktop):设置windows启动