将现有 Flutter 包集成到您的 Flet 应用中
本指南正在更新。
介绍
虽然 Flet 控件利用了许多内置的 Flutter 小部件,甚至能够创建复杂的应用程序,但并非所有的 Flutter 小部件或第三方包都能直接得到 Flet 团队的支持或包含在核心 Flet 框架中。
为了解决这个问题,Flet 框架提供了一个可扩展性机制。这允许您将自己的自定义 Flutter 包或第三方库中的小部件和 API 直接集成到您的 Flet 应用程序中。
先决条件
要将自定义 Flutter 包集成到 Flet 中,您需要对如何用 Dart 语言创建 Flutter 应用和包有基本的了解,并配置好 Flutter 开发环境。有关 Flutter 和 Dart 的更多信息,请查看Flutter 入门。
创建 Flet 扩展
集成第三方 Flutter 包的 Flet 扩展包括以下部分:
-
Flet Dart 包。
-
Flet Python 控件。
Flet Dart 包包括一个根据 Control 的_get_control_name()
函数返回的控件名称创建 Flutter 小部件的机制。这个机制遍历所有第三方包并返回第一个匹配的小部件。
Flet Python 控件是您将在 Flet 程序中使用的 Python 类。
例如,看一下flutter_spinkit包的基本Flet 扩展。
Flet Dart 包
要创建一个新的Dart 包,运行以下命令:
flutter create --template=package <package_name>
您将看到这个文件夹结构:
├── CHANGELOG.md
├── LICENSE
├── README.md
├── analysis_options.yaml
├── lib
│ └── <package_name>.dart
├── pubspec.lock
├── pubspec.yaml
├── test
│ └── <package_name>_test.dart
└── <package_name>.iml
在lib
文件夹中,您需要创建src
文件夹,其中包含两个文件:create_control.dart
和<control_name>.dart
:
└── <package_name>
├── lib
│ ├── <package_name>.dart
│ └── src
│ ├── create_control.dart
│ └── <control_name>.dart
└── pubspec.yaml
pubspec.yaml
一个包含指定包的元数据的 yaml 文件。
在您的pubspec.yaml
中,您应该添加对flet
和您正在为其创建扩展的 Flutter 包的依赖。
在 Flet Spinkit 示例中,pubspec.yaml
包含对flutter_spinkit
的依赖:
dependencies:
flet: ^0.22.0
flutter_spinkit: ^5.2.1