Flutter知识点一

1.Flutter module支持hot reload (热重载)
进入到flutter module目录下

执行命令 flutter attach 即可

Waiting for a connection from Flutter on SM N9600...
Syncing files to device SM N9600...
6,061ms (!)

� To hot reload changes while running, press "r". To hot restart (and rebuild state), press "R".
An Observatory debugger and profiler on SM N9600 is available at: http://127.0.0.1:61382/dcDqRpWTVVI=/
For a more detailed help message, press "h". To detach, press "d"; to quit, press "q".

如上就说明连接成功,只要有改动,键盘敲击R或者r 即可看到更改
如果你运行命令后一直在waiting,可尝试杀死该应用进程后再重启,进入相关Flutter页面就可连接上了

2.Handling errors in Flutter(https://flutter.dev/docs/testing/errors)
For example, to make your application quit immediately any time an error is shown in release mode, you could use the following handler:
import 'dart:io';

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';

void main() {
FlutterError.onError = (FlutterErrorDetails details) {
FlutterError.dumpErrorToConsole(details);
if (kReleaseMode)
exit(1);
};
runApp(MyApp());
}

  1. DropdownButton的默认值要包含在它的items里,不然会报错。

4.所有名字以下划线开头的变量,Dart 的编译器都会将其强制标记为私有的。

5.Dart是单线程编程语言,如果任何代码阻塞线程执行都会导致程序卡死(IO操作、延时执行等).异步编程防止出现阻塞操作.Dart使用Future对象表示异步操作.

6.值得注意的是如果你实现了一个类,那么必须实现该类所有的方法和成员属性,即便它是私有的。

7.路由相关:https://blog.csdn.net/yuzhiqiang_1993/article/details/89090742

8.网络相关:https://invoker.me/flutter-for-android-part-2/

9.column row布局详解:https://www.jianshu.com/p/0ce74751d970

10.关于无法更新listview的视图:https://juejin.im/post/5ca2152f6fb9a05e1a7a9a26

  1. flutter_rounded_date_picker: 1.0.0

12.不同开发环境配置:https://www.jianshu.com/p/b9e7c00075e1

13.Platform Channel:https://www.jianshu.com/p/22939eaa47b1

  1. flutter clean之后,需要flutter create .

15.https://blog.csdn.net/yu75567218/article/details/104590574 gradle版本冲突问题。

16.BasicMessageChannel:传递字符串和半结构化数据
MethodChannel:方法调用
EventChannel:数据流的通信

17.在编译打包的时候出现了找不到相关的包,原因是flutter三个默认配置的地方采用了Google路径的包

19.执行命令flutter packages pub run build_runner build lib进行一次性构建,效率比较低

执行命令flutter packages pub run build_runner watch lib这个命令可以实时文件监听,自动创建实体类生成对应的.g.dart文件。

https://meandni.com/2019/03/04/flutter-route/#%E6%95%B0%E6%8D%AE%E4%BC%A0%E9%80%92

https://doc.xuwenliang.com/docs/dart-flutter/1365
https://blog.whezh.com/flutter-route-and-navigator/
https://hackernoon.com/flutter-pros-and-cons-for-seamless-cross-platform-development-c81bde5a4083

1.pub get failed (1; So, because flutter_gallery depends on test_api 0.2.15, version solving failed.)
2.Column or Row Contain a Listview, ListView don't scroll. ----resovled.
listView must has a father widget, which is Expanded.

  1. Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: [
    SizedBox(
    width: 40.0,
    height: 40.0,
    child: OutlineButton(
    shape: CircleBorder(),
    borderSide: const BorderSide(color: Color(0xFFE65400)),
    onPressed: () {
    _toggle(page_one);
    },
    child: new Text("1"),
    ),
    ),
  2. 如果要设置button的背景色 用flatButton, outlineButton设置Color无效。
    5.当listview没有设置height时,要设置shrinkWrap为true,否则异常。

6.Running "flutter pub get" in flutter_module...
OS Error: The semaphore timeout period has expired.
, errno = 121, address = storage.googleapis.com, port = 49561

7.Flutter app error - getter 'value' was called on null
answer:
If you have created and assigned value to the variable and still it shows getter 'value' was called on null, try to Run or Restart your app instead of Hot Reload. Because Hot Reload will not call initstate() (where variables assign their values) which will be only called by Restarting the app.

How to add a flutter module to android app.
link:https://blog.codemagic.io/flutter-module-android-yaml/s
flutter create -t module name_of_module

你可能感兴趣的:(Flutter知识点一)