本文主要介绍

平台相关的判断

只关心是否是iOS和Android的情况下不需要依赖context,优先使用Platform

Platform.isAndroid
Platform.isIOS

需要详细知道具体哪个平台才使用TargetPlatform

这个API的缺点是需要依赖context这个参数

final platform = Theme.of(context).platform;

if (platform == TargetPlatform.android) {
	...
} else if (platform == TargetPlatform.iOS) {
	...
}

ScrollView 滑动隐藏键盘

https://stackoverflow.com/questions/55306855/hide-keyboard-on-scroll-in-flutter

使用ScrollView的keyboardDismissBehavior属性

ListView(
	keyboardDismissBehavior: ScrollViewKeyboardDismissBehavior.onDrag
)

回调写法

a.无参数回调

VoidCallback

b.有一个参数回调

ValueChanged

c.参数大于一个

可以通过typedef自定义一个函数

下面是Example用法

final VoidCallback onPressed;
final ValueChanged<T> onSelectHandler;
typedef ImageSwiperOnTap = void Function(int index, List<String> imgUrls);

flutter pub get is stuck

可以通过切换flutter镜像到中文站点来解决

使用系统shell,请编辑

使用oh_my_zsh, 需要编辑.zshrc

export PUB_HOSTED_URL=https://pub.flutter-io.cn
export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn

保存文件后,关闭,下次重新打开终端生效

再执行flutter pub get 查看速度是否正常