我正在尝试在基于浏览器的应用程序中使用此package。尝试编译为Chrome时,出现以下提示:
编译器消息: /C:/flutter/.pub-cache/hosted/pub.dartlang.org/whiteboardkit-0.1.8/lib/gesture_whiteboard_controller.dart:63:15: 错误:从'dart:math'和'dart:ui'都导入了'Point'。 ..add(Point.fromOffset(position)); ^^^^^ /C:/flutter/.pub-cache/hosted/pub.dartlang.org/whiteboardkit-0.1.8/lib/gesture_whiteboard_controller.dart:77:39: 错误:从'dart:math'和'dart:ui'都导入了'Point'。 this.draw.lines.last.points.add(Point.fromOffset(secondPoint));
这似乎是特定于软件包的,所以我想我的问题是,为什么'dart:math'和'dart:ui'之间会发生冲突?
答案 0 :(得分:1)
您的问题“ ui
和math
之间为什么会有冲突的答案无法回答,而只能给出一个原因。在数学中肯定有一个概念调用Point
,因此有类对此进行了定义。在dart:ui
中,您要处理基于2D坐标系的屏幕或画布以进行绘制,因此Point
指的是屏幕中的这些点之一。
您可以从这样的一种导入中简单地隐藏其中一个Point
。
import 'dart:ui' hide Point;
import 'dart:math';
反之亦然。
import 'dart:ui' ;
import 'dart:math' hide Point;
或者为导入使用别名,并使用别名作为前缀。
import 'dart:ui' as ui;
import 'dart:math';
// and somewhere in the code use it like
add(ui.Point.fromOffset(position));