使用flutter时,我经常遇到一种由标准库中的不同包公开的类型。
例如,FlutterError
但是其他小部件也一样。在编写它并在VS Code中使用IntelliSense解析要导入的程序包以便FlutterError
可用时,IntelliSense在多个不同的程序包中为我提供FlutterError:
在这种情况下,可以从
package:flutter/widgets.dart
package:flutter/foundation.dart
package:flutter/material.dart
package:flutter/cupertino.dart
package: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 { }
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句