在使用 flutter 时,我经常遇到标准库中不同包公开的类型。
例如,FlutterError但同样适用于其他小部件。在编写它并在 VS Code 中使用 IntelliSense 解析要导入的包以使其FlutterError可用时,IntelliSense 在多个不同的包中为我提供 FlutterError:
在这种情况下,它可以从
package:flutter/widgets.dartpackage:flutter/foundation.dartpackage:flutter/material.dartpackage:flutter/cupertino.dartpackage:flutter/rendering.dart我的理解是,material.dart并cupertino.dart提供特定样式的小部件 - 但剩下的部分是什么,我应该导入哪个包,该包应该MaterialApp(..)独立于平台并且也可以在 iOS 上运行?
并且 - 如果它有所不同 - 应该使用哪一个,以便特定于平台的小部件在 Android 和 iOS 上自动用于本机功能,例如日期/时间选择器,以便日期选择器自动成为 Android 上的平台特定变体和平台特定变体在iOS上?
发生的情况是,该类定义在框架的下部(此处foundation为FlutterError)
然后框架的较高层使用export指令重新导出较低层的内容。
这样做主要是为了确保开发人员在通常需要它们时不必导入 5 种以上不同的东西。
例如material.dart看起来大致是这样的:
export 'package:flutter/widget.dart';
class RaisedButton { }
| 归档时间: | 
 | 
| 查看次数: | 3778 次 | 
| 最近记录: |