flutter.cn

flutter.cn

Flutter框架官方中文文档网站

flutter.cn是Flutter框架的官方中文文档网站,提供全面的开发指南、API参考和示例代码。网站采用Eleventy构建,托管于Firebase,支持响应式设计。内容持续更新,反映Flutter的最新特性和最佳实践。开发团队欢迎社区贡献,共同完善这一跨平台应用开发资源。

Flutter文档网站GitHub开源贡献网站构建Github开源项目

Flutter 标志

Flutter 文档网站

Flutter 框架文档网站,使用 Eleventy 构建并托管在 Firebase 上。

构建状态 OpenSSF 评分卡

问题、错误和需求

我们欢迎对我们的网站提出贡献和反馈。请在我们的问题跟踪器中提交请求或创建拉取请求。对于简单的更改(如调整一些文本),使用 GitHub UI 进行更改最为简单。

如果您在 api.flutter.dev 上的 API 文档有问题,请在 flutter/flutter 仓库中提交这些问题,而不是在这个(flutter/website)仓库中。API 文档嵌入在 Flutter 的源代码中,因此由工程团队处理。

在提交 PR 之前

我们非常喜欢社区参与改进我们的文档!但在提交 PR 之前,请记住以下几点:

  • 在分类问题时,我们有时会给问题贴上 PRs welcome 标签。但我们也欢迎针对其他问题的 PR - 不一定要有该标签。
  • 请不要将我们的文档通过 Grammarly(或类似工具)运行,然后将这些更改作为 PR 提交。
  • 我们遵循 Google 开发者文档风格指南 — 例如,不要使用"即"或"例如",避免使用第一人称写作,避免使用将来时态。您可以从风格指南要点词汇表开始,或使用每个风格指南页面顶部的搜索栏。

我们真诚感谢您愿意并乐于帮助保持网站文档的最新状态!

贡献

要更新此网站,请 fork 仓库,进行更改,然后生成拉取请求。对于小型、局部的更改(如样式和拼写错误修正),您可能不需要构建此网站。通常,您可以使用 GitHub UI 进行更改。如果需要,我们可以在您的拉取请求中自动部署更改。

[!重要]
如果您在本地克隆此仓库,请按照下面关于带子模块克隆的说明进行操作。

如果您的更改涉及代码示例、添加/删除页面或影响导航,请考虑在提交之前构建和测试您的工作。

如果您想要或需要构建网站,请按照以下步骤操作。

构建网站

对于超出简单文本和 CSS 调整的更改,我们建议在本地运行网站,以实现编辑-刷新循环。

获取先决条件

安装以下工具以构建和开发网站:

Flutter

需要 Flutter 的最新稳定版本(包括 Dart)来构建网站并运行其工具。如果您没有 Flutter 或需要更新,请按照 安装 Flutter升级 Flutter 的说明进行操作。

如果您已经安装了 Flutter,请验证它是否在您的路径中,并且已经是最新的稳定版本:

flutter --version

Node.js

需要 Node.js 的最新稳定 LTS 版本来构建网站。如果您没有 Node.js 或需要更新,请从 Node.js 下载存档 下载您计算机对应的版本并按照说明进行操作。如果您喜欢,可以使用版本管理器,如 nvm,并在仓库的根目录运行 nvm install

如果您已经安装了 Node,请验证它是否在您的路径中,并且已经是最新的稳定版本 (当前为 20.12 或更高版本)

node --version

如果您的版本过时,请按照您最初安装它的方式进行更新说明。

克隆此仓库及其子模块

[!注意] 此仓库有 git 子模块,这会影响您克隆它的方式。GitHub 文档有关于分叉克隆仓库的一般帮助。

如果您不是 Flutter 组织的成员,我们建议您在自己的账户下创建此仓库的分叉,然后从该分叉提交 PR。

一旦您有了分叉(或者您是 Flutter 组织成员),_选择以下一种_子模块克隆技术:

  1. 使用 --recurse-submodules 选项同时克隆仓库及其子模块:

    git clone --recurse-submodules https://github.com/flutter/website.git
  2. 如果您已经克隆了仓库但没有其子模块,则从仓库的根目录运行此命令:

    git submodule update --init --recursive

[!注意] 在开发过程中的任何时候,您都可以使用 git submodule 命令刷新子模块:

git pull && git submodule update --init --recursive

设置本地环境并提供更改

在继续设置网站基础设施之前,请按照获取先决条件中的说明验证是否已设置并可用正确版本的 Flutter 和 Node.js。

  1. 可选: 克隆仓库及其子模块后,为您的更改创建一个分支:

    git checkout -b <分支名称>
  2. 从仓库的根目录获取网站的 Dart 依赖项。

    dart pub get
  3. (可选 - 我们强烈建议您使用 pnpm,但您也可以使用 npm。)安装 pnpm,这是一个替代的、高效的 npm 包管理器。如果您已经有 pnpm,请验证您是否拥有最新的稳定版本。

    node --version

    如果您还没有安装 pnpm,我们建议使用 corepack 来安装和管理 pnpm 版本,因为 corepack 与大多数 Node 安装捆绑在一起。如果您使用 Homebrew 安装了 node,则需要单独安装 corepack:

    brew install corepack

    如果您以前没有使用过 corepack,首先需要使用 corepack enable 启用它。然后,要安装正确的 pnpm 版本,从仓库的根目录运行 corepack install

    corepack enable; corepack install

要安装 pnpm 而不使用 corepack,您可以使用您喜欢的安装方法

  1. (可选)一旦您安装并设置好 pnpm,使用 pnpm install 获取网站的 npm 依赖项。我们强烈建议您使用 pnpm,但您也可以使用 npm

    pnpm install

    每当您合并最新的 main 分支更改,或在构建网站时遇到依赖或导入错误,请重新运行 pnpm install

  2. 在根目录下,运行 dash_site 工具以验证您的设置并了解可用的命令。

    ./dash_site --help
  3. 在根目录下,在本地服务器上运行网站。

    ./dash_site serve

    此命令会生成网站并在终端中打印的本地端口上提供服务。

  4. 通过导航到 http://localhost:4000 在浏览器中查看您的更改。

    注意,如果端口 4000 被占用,端口可能会不同。

    如果您想查看原始生成的 HTML 输出和结构,可以在文件资源管理器或 IDE 中查看 _site 目录。

  5. 对本地仓库进行更改。

    大多数更改后,网站应该会自动重新构建,但如果有些内容没有更新,请退出进程并重新运行命令。我们计划改进此功能。如果发生这种情况,请开启一个新的 issue 来跟踪问题。

  6. 将您的更改提交到分支并提交您的 PR。

    如果您的更改较大,或者您想测试它,请考虑验证您的更改

[!提示] 要查找可以运行的其他命令,请在仓库的根目录下运行 ./dash_site --help

验证您的更改

检查文档和示例代码

如果您对 /examples/tool 目录中的代码进行了更改,请提交您的工作,然后运行以下命令以验证它是最新的并符合网站标准。

./dash_site check-all

如果此脚本报告任何错误或警告,请解决这些问题并重新运行命令。如果您遇到任何问题,请在您的 issue 或 pull request 上留言,我们会尽力帮助您。您也可以在 Flutter 贡献者 Discord 上的 #hackers-devrel 频道与我们聊天!

刷新代码摘录

如果构建失败并显示错误 Error: Some code excerpts needed to be updated!,这意味着网站 Markdown 文件中的一个或多个代码摘录与相应 .dart 文件中声明的代码区域不一致。

.dart 文件是代码片段的真实来源,而 Markdown 文件中前面的 <?code-excerpt> 指令指定了如何从 .dart 文件复制片段。

要解决此错误并更新 Markdown 片段以匹配,请在 website 目录的根目录下运行 ./dash_site refresh-excerpts

要了解更多关于创建、编辑和使用代码摘录的信息,请查看摘录更新器包文档

[可选] 部署到演示站点

提交的 pull request 可以由网站维护者自动部署到演示站点。但如果您想自己部署网站,可以构建完整版本并将其上传到 Firebase。

  1. 如果您还没有 Firebase 项目,
  • 导航到 Firebase 控制台并创建您自己的 Firebase 项目(例如,flutter-dev-staging)。

  • 返回到本地终端并验证您是否已登录。

    firebase login
  • 确保您的项目存在并激活该项目:

    firebase projects:list firebase use <your-project>
  1. 在仓库的根目录下,构建网站:

    ./dash_site build

    这将构建网站并将其复制到您本地的 _site 目录。如果该目录之前存在,它将被替换。

  2. 部署到您激活的 Firebase 项目的默认托管站点:

    firebase deploy --only hosting
  3. 导航到 GitHub 上的 PR 并包含演示版本的链接。请考虑添加对您部署的提交的引用,以便审阅者知道是否有进一步的更改。

编辑推荐精选

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞�绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多