组件相关
- type ‘List’ is not a subtype of type ‘List’
children: CardList.map((item) => Container( 加上 *** < Widget>*** 正常
- type ‘(dynamic, dynamic) => Container’ is not a subtype of type ‘(CardType) => Widget’ of ‘f’
children: CardList.map<Widget>((item, index) => Container(
正确使用 map 的索引值应该加上 .asMap().entries.map 转化为实例,key/value形式
children: CardList.asMap()
.entries
.map<Widget>((item) => Container(width: (MediaQuery.of(context).size.width -(JwSizes.width30 * 5)) /4,child: GestureDetector(onTap: () => checkCard(item.key),child: Column(children: [Image.asset(item.value.image,height: JwSizes.width32,fit: BoxFit.fitWidth,),SizedBox(height: JwSizes.height6),Text(item.value.title, style: common13TextStyle)],)),
))
.toList(),
- flutter GestureDetector 点击无效 手势冲突
GestureDetector 内嵌套 chart图表,希望点击后跳转,却展示 图表tootip 没有跳转
https://book.flutterchina.club/chapter8/gesture_conflict.html#_8-4-5-%E8%A7%A3%E5%86%B3%E6%89%8B%E5%8A%BF%E5%86%B2%E7%AA%81
// 使用 Listener 替代 GestureDetector Listener(// TODO 点击跳转无效,被子组件影响behavior: HitTestBehavior.opaque,onPointerUp: (PointerUpEvent event) {controller.gotoGroup(item.value);}
- flutter 唤起键盘 OverlayEntry状态丢失
OverlayEntry中包含 输入框,每当唤起键盘后,OverlayEntry属性mounted 改为了 false 无法remove掉
解决 在 事件 onPressed 中将页面中定义的具体组件赋值给 状态控制器中定义的 OverlayEntry overlayEntry,
防止 键盘唤起后,状态丢失。
连接设备相关
- 连接不到设备
- flutter docker > Unable to run “adb”, check your Android SDK installation and ANDROID_SDK_ROOT environment variable:
adb.exe 23288 23684 fdevent_poll.cpp:64] failed to create f- 打开控制面板->防火墙->允许应用通过Windows防火墙
- 允许的应用界面:先点击 更改设置按钮→再点击允许其他应用按钮
- 选择添加允许的应用(adb.exe)
运行相关
- Could not connect to the Gradle daemon.
Daemon uid: 36b1cf53-4fc6-450a-9f6d-5feea276380b with diagnostics:
Daemon pid: 16588
- 重新安装 flutter
- 关闭防火墙
框架功能使用相关
- 设置横竖屏,出现闪烁
原因: 页面横竖屏切换需要一定时间,同时触发了页面更新
Future<bool> zoomChart({bool? flag}) async {isZoom.value = flag ?? !isZoom.value;if (isZoom.value) {await SystemChrome.setPreferredOrientations([DeviceOrientation.landscapeLeft,DeviceOrientation.landscapeRight,]);} else {await SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp,DeviceOrientation.portraitDown,]);}update();return true;}
- removeInvalidNode all the node in jank list is out of time