Canvas 神秘颤振警告:元素隐式隐藏?

Canvas 神秘颤振警告:元素隐式隐藏?,canvas,dart,flutter,Canvas,Dart,Flutter,警告: SDK库“ui.dart”中的元素“TextStyle”由隐式隐藏 “文本样式.省道” 代码摘录: import 'dart:math'; import 'dart:ui'; import 'package:flutter/material.dart'; @override void paint(Canvas canvas, Size size) { TextSpan span = new TextSpan(style: new TextStyle(color: Colo

警告:

SDK库“ui.dart”中的元素“TextStyle”由隐式隐藏 “文本样式.省道”

代码摘录:

 import 'dart:math';
 import 'dart:ui';
 import 'package:flutter/material.dart';

@override
void paint(Canvas canvas, Size size) {
    TextSpan span = new TextSpan(style: new TextStyle(color: Colors.blue[800], fontSize: 12.0,), text: "Title");
    TextPainter tp = new TextPainter(text: span, textAlign: TextAlign.left, textDirection: TextDirection.ltr);
    tp.layout();
    tp.paint(canvas, new Offset(50.0, 300.0));

这是一个警告,不是一个错误,但我对这条消息的含义一无所知。有人知道怎么翻译吗?这条隐式隐藏的警告消息是什么意思?

删除
导入'dart:ui'为我工作

转售: 文件包
painting
下的文件
text\u style.dart
具有
TextStyle
。文件包
ui
下的文件
text.dart
具有
TextStyle
。它们有相同的名字,所以Dart无法区分,意思是“阴影”。使用
导入'dart:ui'作为ui
而是告诉Dart您真正想要导入的
TextStyle
。在我的情况下,我需要使用的是packagepainting下的TextStyle,所以删除
import'dart:ui'为我工作

如果导入
package:flatter/material.dart
,则
TextStyle
指向package
painting
下的一个。在您的例子中,您还导入了包
ui
,因此出现了“名称阴影”。

a(希望)澄清了答案,以供将来参考

您至少有两个解决导入冲突的选项(在多个导入中名称相同,并且它们相互影响)

  • 使用命名的导入前缀
    作为
  • 使用
    隐藏
    关键字
  • 例如: 导入dart:ui可能会导致文本样式冲突(颤振材料包和dart ui库中都存在
    TextStyle
    类)

    解决方案:

    一,

    二,


    我的错。以下是对“如何消除此错误?”问题的最新精彩答案,不幸的是,它没有远程解决此处所述的问题。我正试图了解如何解决飞镖/颤振程序的故障。我想确切地理解错误消息的含义。抱歉,如果我在问题陈述中没有特别清楚地说明这一点。包绘画下的文件“text\u style.dart”有一个“TextStyle”。包ui下的文件“text.dart”也有一个“TextStyle”。它们有相同的名字,所以Dart无法区分,意思是“阴影”。使用“导入'dart:ui'作为ui;”来告诉dart您真正想要导入的“TextStyle”。在我的情况下,我需要使用的是packagepainting下的TextStyle,所以删除import'dart:ui';为我工作。
    import 'dart:ui' as ui;
    import 'package:flutter/material.dart';
    // prefix your use of the ui library with ui (material TextStyle no longer shadowed)
    ...
    ui.TextStyle(... // from dart:ui
    ui.ImageFilter(... // from dart:ui
    TextStyle(... // from flutter/material
    
    import 'dart:ui' hide TextStyle;
    import 'package:flutter/material.dart';
    // hiding the TextStyle from ui lib (material TextStyle no longer shadowed)
    ...
    TextStyle(... // from flutter/material
    ImageFilter(... // from dart:ui