Flutter设计系统插件flooding_app_design_system的使用

Flutter设计系统插件flooding_app_design_system的使用

Flooding Design System 是一个现代化的UI工具包,旨在帮助开发者创建一致且吸引人的Flutter应用程序。它提供了预先设计的组件、实用程序和设计指南,确保项目整体上保持统一的设计语言。

主要特点

  • 🛠 可定制化的UI组件:这些可重用且可设置主题的部件支持快速开发。
  • 🎨 设计令牌:包括预定义的颜色、排版和间距等样式,以确保设计的一致性和整合性。
  • 📐 响应式设计实用程序:简化了在不同屏幕尺寸上创建布局的过程。
  • 🔗 完美兼容:与Flutter的主要库及流行插件完美兼容。

示例代码

以下是一个简单的示例,展示了如何在Flutter应用中使用flooding_app_design_system插件。

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

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

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

  // 这个小部件是你的应用的根节点。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flooding Design System',
      theme: ThemeData(
        // 使用FloodingColor.main600作为主色调
        colorScheme: ColorScheme.fromSeed(seedColor: FloodingColor.main600),
        useMaterial3: true,
      ),
      home: const MyHomePage(title: 'Flooding Design system'),
    );
  }
}

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

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

class _MyHomePageState extends State<MyHomePage> {
  final formKey = GlobalKey<FormState>();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        // 使用主题颜色方案中的逆向主色作为背景色
        backgroundColor: Theme.of(context).colorScheme.inversePrimary,
        title: Text(widget.title),
      ),
      body: SingleChildScrollView(
        child: Padding(
          padding: const EdgeInsets.symmetric(horizontal: 8.0),
          child: Form(
            key: formKey,
            child: Column(
              spacing: 10,
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                // 使用FloodingDropdownButton
                FloodingDropdownButton(
                  onTap: (it) {},
                  showList: ['1기', '2기'],
                  defaultValue: '기수',
                  width: 101,
                ),
                // 使用FloodingDefaultButton
                FloodingDefaultButton(
                  text: '申请',
                  onTap: () {},
                ),
                // 使用FloodingTextField
                FloodingTextField(
                  textFieldState: FloodingTextFieldState.email,
                  controller: TextEditingController(),
                  hintText: '请输入电子邮件',
                ),
                FloodingTextField(
                  textFieldState: FloodingTextFieldState.password,
                  controller: TextEditingController(),
                  hintText: '请输入密码',
                ),
                FloodingTextField(
                  textFieldState: FloodingTextFieldState.search,
                  controller: TextEditingController(),
                  onEditingComplete: () {},
                  hintText: '请输入要搜索的学生姓名',
                ),
                FloodingTextField(
                  textFieldState: FloodingTextFieldState.basic,
                  controller: TextEditingController(),
                  hintText: '随便输入点什么',
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


flooding_app_design_system 是一个用于 Flutter 的设计系统插件,旨在帮助开发者快速构建具有一致设计风格的应用。它通常提供了预定义的 UI 组件、主题、颜色、字体等,以便开发者能够遵循统一的设计规范,减少重复劳动并提高开发效率。

以下是如何在 Flutter 项目中使用 flooding_app_design_system 插件的基本步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 flooding_app_design_system 插件的依赖。

dependencies:
  flutter:
    sdk: flutter
  flooding_app_design_system: ^1.0.0 # 替换为最新版本

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

2. 导入插件

在你的 Dart 文件中导入 flooding_app_design_system 插件。

import 'package:flooding_app_design_system/flooding_app_design_system.dart';

3. 使用设计系统的主题

大多数设计系统插件都会提供一个主题(Theme),你可以在应用的顶层使用这个主题,以确保整个应用遵循统一的设计风格。

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flooding App',
      theme: FloodingAppTheme.lightTheme, // 使用设计系统的主题
      home: MyHomePage(),
    );
  }
}

4. 使用预定义的组件

flooding_app_design_system 可能提供了许多预定义的组件,如按钮、卡片、文本样式等。你可以直接使用这些组件来构建你的 UI。

例如,使用设计系统中的按钮组件:

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flooding App'),
      ),
      body: Center(
        child: FloodingButton(
          onPressed: () {
            // 按钮点击事件
          },
          text: 'Click Me',
        ),
      ),
    );
  }
}

5. 自定义主题或组件

如果默认的主题或组件不完全符合你的需求,你可以根据设计系统提供的基类或主题数据进行自定义。

例如,自定义主题:

ThemeData customTheme = FloodingAppTheme.lightTheme.copyWith(
  primaryColor: Colors.blue,
  accentColor: Colors.orange,
);

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flooding App',
      theme: customTheme, // 使用自定义主题
      home: MyHomePage(),
    );
  }
}

6. 使用字体和颜色

设计系统通常会提供预定义的字体和颜色,你可以直接在应用中使用它们。

Text(
  'Hello, Flooding!',
  style: FloodingTextStyles.headline1,
  color: FloodingColors.primary,
);

7. 使用图标

如果设计系统提供了图标库,你可以使用它们来统一应用中的图标。

Icon(FloodingIcons.home);

8. 使用间距和布局

设计系统可能会提供预定义的间距和布局工具,以便你能够在应用中保持一致的布局。

Padding(
  padding: FloodingSpacing.medium,
  child: Text('Hello, World!'),
);

9. 使用动画

有些设计系统还提供了预定义的动画效果,你可以直接使用它们来增强用户体验。

FloodingFadeIn(
  child: Text('Hello, World!'),
);
回到顶部