代码之家  ›  专栏  ›  技术社区  ›  zipzit

神秘的颤振警告:元素被隐去了?

  •  2
  • zipzit  · 技术社区  · 6 年前

    警告:

    “文本样式。省道”。

     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));
    

    现在这是一个警告,而不是一个错误,但我甚至不知道这条消息意味着什么。有人知道怎么翻译吗?这是什么 implicitly hidden 警告信息的意思是?

    2 回复  |  直到 6 年前
        1
  •  2
  •   yumi0629    6 年前

    删除 import 'dart:ui'; 为我工作。

    文件 text_style.dart 包内 painting 有一个 TextStyle text.dart 包内 ui 有一个 文本样式 import 'dart:ui' as ui; 相反,告诉达特 你真的想导入。在我的情况下,我需要使用的是包绘画下的文本样式,所以删除 导入“dart:ui”;

    如果你输入 package:flutter/material.dart ,和 指向包裹下面的那个 . 在您的情况下,您还导入了包 用户界面 ,所以出现了“名字阴影”。

        2
  •  3
  •   ninnepinne    6 年前

    您至少有两个用于解决导入冲突的选项(在多个导入中名称相同,并且彼此隐藏)。

    1. as
    2. 使用 hide

    例子: 导入dart:ui可能导致文本样式冲突(a TextStyle

    解决:

    一。

    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
    

    2。

    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