我想在一个纯dart程序中使用这些基本类(比如Offset、Size和Color)。我不能在纯dart项目中导入它们。我该如何使用它们?
这些类是非常基础的,非常有帮助。例如,使用Color (和Colors)可以很容易地使用颜色系统。所以如果我能用上它们我会很感激的。
我已经尝试过this,但它给出了以下错误:Error: Not found: 'dart:ui'。我也尝试过复制和粘贴,但这有点难看……
发布于 2021-01-28 20:58:05
简而言之,您不能这样做,除非您从package:flutter/material.dart中的源类复制代码。
发布于 2021-01-30 06:29:16
您不能在控制台程序中导入dart:ui。但是如果你想使用它们,你可以做一些事情:
要使用Color类以及RgbColor、HexColor、HslColor、XyzColor和CielabColor,可以使用color包。您可以通过在pubspec.yaml文件(需要手动创建)中导入包来在cli应用程序中使用它。
pubspec.yaml:
name: CLI
description: A CLI App
version: 1.0.0
publish_to: 'none'
environment:
sdk: ">=2.7.0 <3.0.0"
dependencies:
color: 2.1.1 <---main.dart:
import 'package:color/color.dart';
void main(List<String> args) {
Color color = new Color.hex("FFFFFF");
print(color); //Should print "ffffff"
}编辑:如果要使用Flutter的Color类,请将其复制到单独的color.dart文件中,以及与Color类位于同一文件中的_scaleAlpha() (sky_engine\lib\ui\painting.dart)和_clampInt() + _lerpInt() (位于sky_engine\lib\ui\lerp.dart中)。不要忘记对这个新文件执行import "dart:math" as math命令。你说过复制是很难看的,但是如果你以后想让它与Flutter兼容,那就是最好的了。只需将main.dart文件中的import "color.dart"更改为import "dart:ui"
至于Size和Offset,它们位于(颤动路径) flutter\bin\cache\pkg\sky_engine\lib\ui\geometry.dart中。正如你所说,复制和粘贴是丑陋的,看看这些功能,我会说大多数对控制台应用程序都没有用。
也许可以尝试自己实现它们,方法是从头开始编写适合您需要的类,或者剥离geometry.dart中的原始类。如果去掉注释,这两个类都很小。
https://stackoverflow.com/questions/65914605
复制相似问题