1. 一些概念,组件的意思:
1. StatefulWidget, 可以保存状态的组件, 需要重写一个createState()方法, 然后 继承State<>
StatelessWidget, 是一个固定的,只能读的, 顶层的部件应该是stateless
2. ListView, 适合用于滚动布局
3. snackBar, 就是一个在底部短暂显示的提示信息的小组件.
4. FittedBox, 可以用于解决空间不足,或者想占满一个空间.
5. Expanded这个组件, 会尽可能地占据空间, 不会显得空荡荡的
6.debugShowCheckedModeBanner: true, 是否显示debug标签
7. Navigator.of(context).pushNamed('/about'); 可用于视图之间的切换
8. 显示从网上外链的图片,支持GIF,使用 Image.network('your url'),
9. AppBar 里面的 centerTitle: true,可以设置成居中
10. BoxFit.contain, 显示全部图片, BoxFit.cover, 截取图片并布满屏幕
12. AboutListTile, 是一块可以跳出来显示的小部件
13. with SingleTickerProviderStateMixin, 是用于动画效果的
14. 在 .yaml 中, -images/ ,这样写可以包含所有的文件
15. 如果不知道第三方插件的版本,直接写 any
16. 开启全屏显示:
import 'package:flutter/services.dart';
main() 中添加: SystemChrome.setEnabledSystemUIOverlays([]);
17. 每次改变组件的状态时,记得呼叫 setState(() {} )
18. 让键盘自动弹出来, TextField(autofocus: true)
2.. 补充
1. ListView( scrollDirection: Axis.horizontal), 可以修改列表的方向
2. GridView.count(), 网格布局, 默认是支持竖直方向滑动拓展的
3. ListView.builder(),把 数据转换成 Widget
4. 把 appbar 从 Scaffold 挪到一个 CustomScrollView(是内建的)里,可以自动隐藏
5. image: AssetImage('images/2.png'), fit: BoxFit.cover
6. 重复的代码会更易于讲解和演示。
9. Navigator.push(), 跳转到第二个路由
Navigator.pop(), 回退到第一个路由(Home)
Navigator.pushNamed(context, '/second') 跳转到指定的页面
10. Future, 是一个"类", 它通常代表一个可能的值, 或者是错误
11. FutureBuilder(), 也是一个Widget, 专门处理异步获取的数据源
网友评论