簡體   English   中英

在沒有 Flutter 的 Dart 中使用基本類,如 `Offset`/`Color`

[英]Use basic classes like `Offset`/`Color` in Dart without Flutter

我想在純dart程序中使用這些基本類(例如OffsetSizeColor )。 我無法在純 dart 項目中導入它們。 我該如何使用它們?

這些課程非常基礎並且很有幫助。 例如,使用Color (和Colors )可以輕松使用顏色系統。 因此,如果我可以使用它們,我將不勝感激。

我試過這個,但它給了我以下錯誤: Error: Not found: 'dart:ui' 我也嘗試過復制和粘貼,但這有點難看......

簡而言之,您不能,除非您從package:flutter/material.dart中的源代碼 class 復制代碼。

您不能在控制台程序中導入dart:ui 但是如果你想使用它們,你可以做一些事情:

要使用Color class 以及RgbColorHexColorHslColorXyzColorCielabColor ,您可以使用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"

至於SizeOffset ,它們位於(flutter的路徑) flutter\bin\cache\pkg\sky_engine\lib\ui\geometry.dart 正如您所說,復制和粘貼是丑陋的,並且查看我所說的大多數功能對於控制台應用程序沒有用。

也許嘗試通過從頭開始編寫適合您需要的這些類,或者通過剝離geometry.dart的原始類來自己實現它們。 如果您刪除評論,這兩個類都非常小。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM