2022-07-15 flutter 问题汇总

2022-07-15  本文已影响0人  江江江123

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

  1. 由于dart不能动态获取类的字段,所以json 与class转换需要借助android studio的插件生成class


    image.png
  2. ()=>{} 与(){}
    2个都是闭包,但是=>后面只能跟一句话,如果想说的有很多,建议写成方法
  3. 单例
    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点击时间

上一篇下一篇

猜你喜欢

热点阅读