错误:不要从另一个包导入实现文件

nyp*_*ogi 6 dart flutter

我正在尝试在 Flutter 中制作自定义步进器。我复制了 stepper.dart 的实现,将我的文件保存到我自己的 lib 文件夹并修复了导入以消除错误。

import 'package:flutter/src/material/button_theme.dart';
import 'package:flutter/src/material/colors.dart';
import 'package:flutter/src/material/debug.dart';
import 'package:flutter/src/material/flat_button.dart';
import 'package:flutter/src/material/icons.dart';
import 'package:flutter/src/material/ink_well.dart';
import 'package:flutter/src/material/material.dart';
import 'package:flutter/src/material/material_localizations.dart';
import 'package:flutter/src/material/theme.dart';
import 'package:flutter/src/material/typography.dart';
Run Code Online (Sandbox Code Playgroud)

错误被删除,但 dart 说“不要从另一个包导入实现文件。”

我可以知道继续操作是否安全吗?或者还有另一种实现自定义小部件的方法吗?还是应该转移自定义步进器文件的位置?谢谢。

Sou*_*tes 10

Flutter Material Widgets 并不意味着被子类化。这是我创建自定义版本小部件的操作:

(1) 找到原widget的源文件,复制到你项目的lib目录下。
(你已经这样做了)

(2)请从复制文件中的所有import语句和插入行
import 'package:flutter/material.dart';,而不是

(3) 检查 Dart 分析是否有丢失的包。要添加这些,请单击复制的源文件中的未知(红色下划线)类名称,然后按ALT+Enter并选择提供添加缺失依赖项的上下文菜单条目。

(4) 现在根据您的喜好修改小部件。

(5) 要在您的项目中使用修改后的 Widget,请像这样导入:
import 'stepper.dart' as my;

(6) 您现在可以访问修改后的步进器
my.Stepper stepper = my.Stepper(...);