Flutter设计系统插件fluent_design_system的使用

Fluent Design System for Flutter

一个基于 Fluent Design 的 Flutter 设计系统包。此包提供了一组可重用的小部件、颜色方案、排版和样式,遵循 Fluent Design 指南。它旨在让开发者更容易创建美观且一致的用户界面,使其在平台上感觉原生。

开始使用

要使用此包,请在 pubspec.yaml 文件中添加 fluent_design_system 作为依赖项。例如:

dependencies:
  fluent_design_system: ^1.0.0

然后运行 flutter packages get 来安装包。

使用

要使用此包提供的小部件、颜色、排版或样式,请在 Dart 代码中导入包。例如:

import 'package:fluent_design_system/fluent.dart';
import 'package:flutter/material.dart';
import 'package:fluent_design_system/design_system.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  // 这个小部件是你的应用程序的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: FluentDesignSystem.themeData, // 使用 Fluent Design 系统的主题数据
      home: const MyHomePage(title: 'Flutter Demo'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  // 这个小部件是你的应用程序的主页。它是有状态的,意味着
  // 它有一个包含影响外观的字段的状态对象(定义如下)。

  // 此类是状态的配置。它保存由父级(在这个例子中是 App 小部件)提供的值(在这里是标题),并
  // 由 State 的构建方法使用。小部件子类中的字段总是标记为“final”。

  final String title;

  [@override](/user/override)
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // 这次调用 setState 告诉 Flutter 框架某些事情已经改变在这个状态中,
      // 这会导致它重新运行下面的构建方法,以便显示可以反映更新后的值。
      // 如果我们不调用 setState() 而直接改变 _counter,则不会重新运行构建方法,
      // 因此什么也不会发生。
      _counter++;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 每次调用 setState 时都会重新运行此方法,例如上面的 _incrementCounter 方法。
    //
    // Flutter 框架经过优化,以快速重新运行构建方法,
    // 因此你可以重建任何需要更新的内容,而不是必须逐个更改小部件实例。
    return Scaffold(
      appBar: AppBar(
        // 这里我们从由 App.build 方法创建的 MyHomePage 对象中获取值,
        // 并将其用于设置我们的应用栏标题。
        title: Text(widget.title),
      ),
      body: Center(
        // Center 是一个布局小部件。它接受单个子元素并将它放置在其父元素的中间。
        child: Column(
          // Column 也是一个布局小部件。它接受一组子元素并垂直排列它们。
          // 默认情况下,它会根据其子元素水平调整自身大小,并尝试与父元素一样高。
          //
          // 调用“调试绘制”(在控制台中按“p”,选择 Android Studio 中的“切换调试绘制”操作,
          // 或 Visual Studio Code 中的“切换调试绘制”命令)可以看到每个小部件的线框图。
          //
          // Column 有许多属性来控制它的大小及其子元素的位置。
          // 在这里我们使用 mainAxisAlignment 来垂直居中子元素;主轴是垂直轴,因为 Columns 是垂直的(交叉轴是水平的)。
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            const Text(
              '你已经按下了按钮这么多次:',
            ),
            Text(
              '$_counter',
              style: kHeadingTextStyle, // 使用 Fluent Design 提供的标题样式
            ),
          ],
        ),
      ),
      floatingActionButton: PrimaryButton(
        onPressed: _incrementCounter,
        tooltip: '点击增加按钮',
        label: '增加',
        child: const Icon(Icons.add), // 使用图标作为按钮内容
      ), // 这个尾随的逗号使构建方法的自动格式化更美观。
    );
  }
}
1 回复

更多关于Flutter设计系统插件fluent_design_system的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


fluent_design_system 是一个用于 Flutter 的插件,旨在帮助开发者实现 Microsoft 的 Fluent Design 设计系统。Fluent Design 是微软推出的一套设计语言,强调简洁、现代和一致的用户体验。通过使用 fluent_design_system 插件,开发者可以轻松地在 Flutter 应用中实现 Fluent Design 风格的 UI 组件。

安装 fluent_design_system

首先,你需要在 pubspec.yaml 文件中添加 fluent_design_system 依赖:

dependencies:
  flutter:
    sdk: flutter
  fluent_design_system: ^latest_version

然后运行 flutter pub get 来安装依赖。

使用 fluent_design_system

1. 引入包

在你的 Dart 文件中引入 fluent_design_system 包:

import 'package:fluent_design_system/fluent_design_system.dart';

2. 使用 Fluent Design 组件

fluent_design_system 提供了多种 Fluent Design 风格的组件,例如按钮、文本框、卡片等。以下是一些常见组件的使用示例:

Fluent 按钮
FluentButton(
  onPressed: () {
    // 处理按钮点击事件
  },
  child: Text('Fluent Button'),
)
Fluent 文本框
FluentTextField(
  decoration: FluentInputDecoration(
    labelText: 'Enter your name',
  ),
)
Fluent 卡片
FluentCard(
  child: Padding(
    padding: EdgeInsets.all(16.0),
    child: Text('This is a Fluent Design card.'),
  ),
)

3. 主题设置

fluent_design_system 还支持自定义主题,以便更好地适应你的应用风格。你可以通过 FluentTheme 来设置应用的主题:

MaterialApp(
  theme: FluentThemeData(
    primaryColor: Colors.blue,
    accentColor: Colors.blueAccent,
  ),
  home: MyHomePage(),
)

4. 其他组件

fluent_design_system 还提供了其他一些组件,如 FluentAppBarFluentNavigationBarFluentDialog 等,你可以根据需要在应用中使用它们。

示例代码

以下是一个简单的示例,展示了如何使用 fluent_design_system 创建一个具有 Fluent Design 风格的页面:

import 'package:flutter/material.dart';
import 'package:fluent_design_system/fluent_design_system.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: FluentThemeData(
        primaryColor: Colors.blue,
        accentColor: Colors.blueAccent,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: FluentAppBar(
        title: Text('Fluent Design System'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            FluentTextField(
              decoration: FluentInputDecoration(
                labelText: 'Enter your name',
              ),
            ),
            SizedBox(height: 20),
            FluentButton(
              onPressed: () {
                // 处理按钮点击事件
              },
              child: Text('Submit'),
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!