1 引导页
普通的页面加一个倒计时
var duration = const Duration(seconds: 3);
Future.delayed(duration, newHomePage);
2 首部尾部导航
Scaffold
appBar 首部
bottomNavigationBar 底部
3 路由
显式声明路由
MaterialApp(
routes: {
"/client": (context) => const Client(),
},
home: const Splash(),
引导页跳转
Navigator.pushReplacementNamed(context, '/client');
跳转传参
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => ChooseLinePage(
nodeList: nodeList,
curNodeIndex: curNodeIndex,
))).then((value) => callback(value));
返回代参
Navigator.pop(context, _selIndex);
4 网络
dio:案例
5 uuid
uuid:案例
6 aes 加解密
encrypt:案例
7 弹窗
flutter_smart_dialog:案例
8 网络图片
cached_network_image:案例
9 json动画
lottie:案例
10 webView与 html
webview_flutter: ^2.0.4
flutter_html: ^2.2.1
这2个一起用有版本限制,不是最新的最好。。
webview_flutter通过url拉起web页面
flutter_html 可以显示一些用html写的富文本
11 dart
-
由于dart不能动态获取类的字段,所以json 与class转换需要借助android studio的插件生成class
image.png - ()=>{} 与(){}
2个都是闭包,但是=>后面只能跟一句话,如果想说的有很多,建议写成方法 - 单例
3.1 饿汉式
class Simple{
static final Simple _instance = Simple._internal();
factory Simple() {
return _instance;
}
Simple._internal() {
//todo
}
}
3.2 饱汉式
class Simple {
static Simple? _instance;
factory Simple() {
if (_instance == Null) {
_instance = Simple._internal();
}
return _instance!;
}
Simple._internal() {
//todo
}
}
12 页面布局
填充内容可以用 Container ,column, rows 快速填充。
适配类Expanded(),被该类包裹的child大小会自适应
GestureDetector(),被该类包裹可以添加一个额外opTap点击时间
网友评论