此仓库用于托管和提供静态资源,以支持 docs.flutter.dev,以及一些使用特殊制作的图形的手动测试。
提交到此仓库并推送到 GitHub 的资源会立即提供链接和引用。
根据 Flutter 风格指南,提交到此存储库的资源应易于重现,例如,通过运行 Flutter 应用程序或脚本。这使得在将来需要时更容易更新资源。请查看此存储库中现有的图表(及其生成代码)以查看示例。避免只提交静态图像文件(例如 PNG、JPEG),而不提供重新生成和更新它的方法。
要创建新图表
在 /packages/diagrams/lib/src/
中创建一个新的 Dart 文件。
从 /packages/diagrams/lib/diagrams.dart
导出该文件。
创建一个或多个混合了 DiagramMetadata
的图表 widget,覆盖 name
getter 以返回它们的名称,该名称应为 lower_snake_case 格式。
如果您的图表是动画的,请覆盖 duration
getter 以返回动画的持续时间。
如果您的图表的状态需要强制等待,请混合 LockstepStateMixin
并调用 waitLockstep(duration)
。
如果您的图表需要模拟手势输入,请通过调用 DiagramWidgetController.of(context)
来获取 WidgetController。
创建一个扩展 DiagramStep
的类。
覆盖 DiagramStep
的 diagrams
getter 以返回包含新图表的列表。
覆盖 DiagramStep
的 category
getter 以返回它所属的类别,这对应于 /assets
下的文件夹。
将您的新 DiagramStep
添加到 packages/diagrams/lib/src/steps.dart
中的列表中,并按字母顺序排序。
使用 bin/generate -s MyDiagramStep
生成资源,有关更多选项,请参阅生成部分。
使用此 URL 结构引用资源
https://github.flutterdart.cn/assets-for-api-docs/assets/<library>/<asset>
例如,一个名为 app_bar.png
的关于 material 库中的 AppBar
的图像应该放在 assets/material/
目录下,并且位于 https://github.flutterdart.cn/assets-for-api-docs/assets/material/app_bar.png
。
所有资源文件都应位于 assets
目录下的适当子目录中。
图像必须通过代码生成。
要创建新图像,请参阅 packages/diagrams/lib/src/
目录。
generate.dart
脚本使用您安装的 Flutter 版本重新生成几乎所有现有资源。 提供了一个小的包装器 bin/generate
(bin\generate.bat
在 Windows 上) 以方便使用。
要将图像生成限制为某些类别和/或名称,请运行
# Filter by category
bin/generate -c cupertino,material
# Filter by name
bin/generate -n basic_material_app,blend_mode
# Filter by step class name
bin/generate -s MaterialAppDiagramStep,BlendModeDiagramStep
bin/generate --help
列出可用的参数。
generate.dart
脚本可在 macOS、Linux 和 Windows 上运行,但它需要一些先决条件才能运行。在 Linux 和 macOS 上,运行 bin/generate
。在 Windows 上,运行 bin\generate.bat
。
要优化 PNG 文件,它需要 optipng
,它可通过 Homebrew 用于 macOS,通过 apt-get 用于 Linux,并且可从 optipng 网站用于 Windows。
要将动画转换为 mp4 文件,它需要 ffmpeg
,它可通过 Homebrew 用于 macOS,通过 apt-get 用于 Linux,并且可从 FFMPEG 网站用于 Windows。
运行生成脚本时,optipng
和 ffmpeg
都需要位于您的路径中。
命令 flutter
、dart
和(当使用 Android 设备时)adb
需要在 PATH
环境变量的目录中可用(例如,PATH=~/<path_to_flutter>/flutter/bin/cache/dart-sdk/bin:~/Android/Sdk/platform-tools:$PATH
)。该脚本需要最新开发版本的 Flutter,并且不打算与已发布的 Flutter 版本一起使用。
当使用 Android 设备时,请确保 adb
命令与作为服务器运行的命令相同(通常由您的 IDE 启动,因此请使用 IDE 正在运行的相同的 adb
)。
您目前无法在 iOS 设备上生成文档(尽管您可以在 macOS 上生成它们)。
请考虑使用资源优化工具。
对于 PNG,我们建议使用 optipng
,使用以下命令行
optipng -zc1-9 -zm1-9 -zs0-3 -f0-5 *.png
小心不要过于激进地应用此操作。特别是,assets/tests
目录中的文件不应进行优化。
自动生成工具会自动将其生成的资源应用优化。
请在 主 Flutter 仓库中提交任何问题。
/assets/audio/rooster.mp3
:CC0 Creative Commons,来自 https://pixabay.com/sound-effects/rooster-crowing-7027//assets/videos/bee.mp4
:CC0 Creative Commons,来自 https://pixabay.com/en/videos/honey-bee-insect-bee-flower-flying-211//assets/videos/butterfly.mp4
:CC0 Creative Commons,来自 https://pixabay.com/en/videos/butterfly-flower-insect-nature-209/