[英]Use basic classes like `Offset`/`Color` in Dart without Flutter
我想在純dart
程序中使用這些基本類(例如Offset
、 Size
和Color
)。 我無法在純 dart 項目中導入它們。 我該如何使用它們?
這些課程非常基礎並且很有幫助。 例如,使用Color
(和Colors
)可以輕松使用顏色系統。 因此,如果我可以使用它們,我將不勝感激。
我試過這個,但它給了我以下錯誤: Error: Not found: 'dart:ui'
。 我也嘗試過復制和粘貼,但這有點難看......
簡而言之,您不能,除非您從package:flutter/material.dart
中的源代碼 class 復制代碼。
您不能在控制台程序中導入dart:ui
。 但是如果你想使用它們,你可以做一些事情:
要使用Color
class 以及RgbColor
、 HexColor
、 HslColor
、 XyzColor
和CielabColor
,您可以使用color
package。 您可以通過在 pubspec.yaml 文件(您需要手動創建)中導入 package 在 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"
}
Edit: If you want to use Flutter's Color
class, copy it into a separate color.dart
file, as well as _scaleAlpha()
found in the same file as the Color
class ( sky_engine\lib\ui\painting.dart
), and _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的路徑) flutter\bin\cache\pkg\sky_engine\lib\ui\geometry.dart
。 正如您所說,復制和粘貼是丑陋的,並且查看我所說的大多數功能對於控制台應用程序沒有用。
也許嘗試通過從頭開始編寫適合您需要的這些類,或者通過剝離geometry.dart
的原始類來自己實現它們。 如果您刪除評論,這兩個類都非常小。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.