Flutter设计系统插件hondooye_design_system的使用

Flutter设计系统插件hondooye_design_system的使用

Features

此插件提供了一套完整的Flutter设计系统,包括颜色主题、字体样式、按钮组件等。它旨在帮助开发者快速构建具有统一风格的应用程序。

Getting started

在使用hondooye_design_system之前,确保已将插件添加到项目的pubspec.yaml文件中:

dependencies:
  hondooye_design_system: ^1.0.0

然后运行以下命令以安装依赖:

flutter pub get

Usage

引入插件

首先,我们需要在项目中导入hondooye_design_system包,并使用其提供的颜色和字体样式。

import 'package:hondooye_design_system/hondooye_design_system.dart';

主应用结构

接下来,我们将创建一个简单的Flutter应用程序来展示插件的功能。

示例代码解释

以下是完整的示例代码,展示了如何使用该插件。

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Hondooye Design System Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Hondooye Design System'),
    );
  }
}

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

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

class _MyHomePageState extends State<MyHomePage> {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 显示主色调
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                Container(
                  width: 20,
                  height: 20,
                  color: HdyColor.primary,
                ),
                Container(
                  width: 20,
                  height: 20,
                  color: HdyColor.secondary,
                ),
                Container(
                  width: 20,
                  height: 20,
                  color: HdyColor.tertiary,
                ),
              ],
            ),

            // 显示多种字体样式
            Text(
              "NotoSansKR 노토산스",
              style: NotoSansKR.thin(fontSize: 12),
            ),
            Text(
              "NotoSansKR 노토산스",
              style: NotoSansKR.light(fontSize: 12),
            ),
            Text(
              "NotoSansKR 노토산스",
              style: NotoSansKR.regular(fontSize: 12),
            ),
            Text(
              "NotoSansKR 노토산스",
              style: NotoSansKR.medium(fontSize: 12),
            ),
            Text(
              "NotoSansKR 노토산스",
              style: NotoSansKR.bold(fontSize: 12),
            ),
            Text(
              "NotoSansKR 노토산스",
              style: NotoSansKR.black(fontSize: 12),
            ),

            // 其他字体样式
            Text(
              "Roboto 로보토",
              style: Roboto.thin(fontSize: 12),
            ),
            Text(
              "Roboto 로보토",
              style: Roboto.light(fontSize: 12),
            ),
            Text(
              "Roboto 로보토",
              style: Roboto.regular(fontSize: 12),
            ),
            Text(
              "Roboto 로보토",
              style: Roboto.bold(fontSize: 12),
            ),

            // 按钮切换主题
            const SizedBox(height: 32),
            Row(
              mainAxisAlignment: MainAxisAlignment.center,
              children: [
                ElevatedButton(
                  onPressed: () {
                    ThemeNotifier.of(context)!.setLightMode();
                  },
                  child: const Text("Light Theme"),
                ),
                const SizedBox(width: 32),
                ElevatedButton(
                  onPressed: () {
                    ThemeNotifier.of(context)!.setDarkMode();
                  },
                  child: const Text("Dark Theme"),
                ),
              ],
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


hondooye_design_system 是一个用于 Flutter 的设计系统插件,旨在帮助开发者快速构建一致且美观的用户界面。它通常包含预定义的组件、样式、颜色、字体等,以便在应用程序中保持设计的一致性。

以下是如何使用 hondooye_design_system 插件的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  hondooye_design_system: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来获取依赖。

2. 导入插件

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

import 'package:hondooye_design_system/hondooye_design_system.dart';

3. 使用设计系统组件

hondooye_design_system 插件通常会提供一系列预定义的组件,例如按钮、文本、卡片等。你可以直接在代码中使用这些组件。

示例:使用按钮组件

HondooyeButton(
  onPressed: () {
    // 处理按钮点击事件
  },
  text: 'Click Me',
  type: HondooyeButtonType.primary,
);

示例:使用文本样式

Text(
  'Hello, Hondooye Design System!',
  style: HondooyeTextStyles.headline1,
);

示例:使用颜色

Container(
  color: HondooyeColors.primary,
  child: Text(
    'This is a primary color container',
    style: TextStyle(color: HondooyeColors.onPrimary),
  ),
);

4. 自定义主题

hondooye_design_system 可能还支持自定义主题,以便你可以根据应用程序的需求调整颜色、字体等。

示例:自定义主题

MaterialApp(
  theme: ThemeData(
    primaryColor: HondooyeColors.primary,
    accentColor: HondooyeColors.secondary,
    textTheme: TextTheme(
      headline1: HondooyeTextStyles.headline1,
      bodyText1: HondooyeTextStyles.bodyText1,
    ),
  ),
  home: MyHomePage(),
);

5. 使用图标和图片

如果 hondooye_design_system 提供了图标或图片资源,你可以直接使用它们。

示例:使用图标

Icon(HondooyeIcons.home);

示例:使用图片

Image.asset(HondooyeImages.logo);

6. 响应式设计

hondooye_design_system 可能还包含一些响应式设计的工具或组件,以便在不同屏幕尺寸上保持良好的用户体验。

示例:使用响应式布局

HondooyeResponsiveLayout(
  mobile: MobileView(),
  tablet: TabletView(),
  desktop: DesktopView(),
);
回到顶部