Flutter界面设计插件sprout_toge_design的使用

Flutter界面设计插件sprout_toge_design的使用

简介

sprout_toge_design 是一个用于 Flutter 的 UI 设计系统包,它提供了丰富的颜色、字体、尺寸等设计资源,同时包含了许多实用的组件,如按钮、输入框、卡片等。通过该插件,开发者可以快速构建具有统一风格的应用界面。


功能特点

类(Classes)

颜色类(Colors)

  • 主色调(TogeColors)
  • 背景色
  • 文本颜色
  • 边框颜色

阴影(Elavation)

  • 提供不同层级的阴影效果。

字体(Font)

  • 字体家族
  • 字号
  • 字间距
  • 字重

尺寸(Size)

  • 主要尺寸(Toge Size)
  • 间距

组件(Widgets)

按钮(Buttons)

  • TogeButtonWidget
  • TogeIconButtonWidget
  • TogeDropdownButtonWidget

头像(Avatar)

  • TogeAvatarWidget

标签页(Tabs)

  • TogeTabBarWidget
  • TogeTab
  • TogeTabIcon

复选框(Checkbox)

  • TogeCheckboxWidget
  • TogeCheckboxLabelWidget
  • TogeCheckboxIconWidget

输入框(InputField)

  • TogeInputFieldDefaultLoadingWidget
  • TogeInputFieldDefaultWidget
  • TogeInputFieldMultiInputWidget
  • TogeInputFieldTextAreaWidget

徽章(Badge)

  • TogeBadgeBaseWidget
  • TogeBadgeLabelWidget
  • TogeBadgeWidget

椭圆标签(Lozenge)

  • TogeLozengeWidget
  • TogeLozengeHollowWidget
  • TogeLozengeFillWidget

卡片(Card)

  • TogeCardPrimaryWidget
  • TogeCardOutlinedWidget
  • TogeCardListWidget
  • TogeCardDefaultTemplateWidget
  • TogeCardDefaultLeadingTemplateWidget
  • TogeCardDefaultTrailingTemplateWidget
  • TogeCardIconTemplateWidget
  • TogeCardMetricTemplateWidget
  • TogeCardSlotTemplateWidget
  • TogeCardLoadingType
  • TogeCardInteractionType

安装

在项目的 pubspec.yaml 文件中添加以下依赖:

dependencies:
  sprout_toge_design: 1.0.5

然后运行以下命令以更新依赖项:

flutter pub get

使用示例

以下是一个完整的示例,展示如何使用 sprout_toge_design 插件来创建一个简单的登录页面。

示例代码

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Sprout Toge Design Example',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: LoginPage(),
    );
  }
}

class LoginPage extends StatefulWidget {
  [@override](/user/override)
  _LoginPageState createState() => _LoginPageState();
}

class _LoginPageState extends State<LoginPage> {
  final _usernameController = TextEditingController();
  final _passwordController = TextEditingController();

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('登录页面'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 输入框
            TogeInputFieldDefaultWidget(
              controller: _usernameController,
              label: '用户名',
              placeholder: '请输入用户名',
            ),
            SizedBox(height: 16),
            TogeInputFieldDefaultWidget(
              controller: _passwordController,
              label: '密码',
              placeholder: '请输入密码',
              isPassword: true,
            ),
            SizedBox(height: 24),
            // 登录按钮
            TogeButtonWidget(
              text: '登录',
              onPressed: () {
                print('用户名: ${_usernameController.text}');
                print('密码: ${_passwordController.text}');
              },
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


SproutTogeDesign 是一个用于 Flutter 的界面设计插件,旨在帮助开发者快速构建美观且一致的 UI。它提供了一系列预定义的组件、样式和布局工具,可以显著减少开发时间并提高代码的可维护性。

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

1. 安装插件

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

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

然后运行 flutter pub get 来安装插件。

2. 导入插件

在你的 Dart 文件中导入 sprout_toge_design

import 'package:sprout_toge_design/sprout_toge_design.dart';

3. 使用预定义组件

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

示例:使用按钮组件

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

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('SproutTogeDesign Example'),
      ),
      body: Center(
        child: STButton(
          onPressed: () {
            print('Button Pressed');
          },
          text: 'Click Me',
        ),
      ),
    );
  }
}

4. 使用预定义样式

SproutTogeDesign 还提供了一些预定义的样式,例如颜色、字体、间距等。你可以使用这些样式来保持 UI 的一致性。

示例:使用预定义颜色

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

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('SproutTogeDesign Example'),
        backgroundColor: STColors.primary,
      ),
      body: Center(
        child: Text(
          'Hello, World!',
          style: TextStyle(
            color: STColors.secondary,
            fontSize: 24,
          ),
        ),
      ),
    );
  }
}

5. 自定义主题

你可以通过自定义主题来覆盖 SproutTogeDesign 的默认样式,以适应你的应用设计需求。

示例:自定义主题

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'SproutTogeDesign Example',
      theme: ThemeData(
        primaryColor: STColors.primary,
        accentColor: STColors.secondary,
        textTheme: TextTheme(
          bodyText1: TextStyle(fontSize: 16, color: STColors.textPrimary),
          bodyText2: TextStyle(fontSize: 14, color: STColors.textSecondary),
        ),
      ),
      home: MyHomePage(),
    );
  }
}

6. 使用布局工具

SproutTogeDesign 还提供了一些布局工具,例如间距、对齐方式等,帮助你更轻松地构建复杂的布局。

示例:使用间距工具

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

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('SproutTogeDesign Example'),
      ),
      body: Padding(
        padding: EdgeInsets.all(STSpacing.medium),
        child: Column(
          children: [
            Text('Item 1'),
            SizedBox(height: STSpacing.small),
            Text('Item 2'),
            SizedBox(height: STSpacing.small),
            Text('Item 3'),
          ],
        ),
      ),
    );
  }
}

7. 响应式设计

SproutTogeDesign 还支持响应式设计,你可以根据屏幕大小动态调整布局和样式。

示例:响应式设计

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

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('SproutTogeDesign Example'),
      ),
      body: LayoutBuilder(
        builder: (context, constraints) {
          if (constraints.maxWidth > 600) {
            return Row(
              children: [
                Expanded(
                  child: Text('Left Column'),
                ),
                Expanded(
                  child: Text('Right Column'),
                ),
              ],
            );
          } else {
            return Column(
              children: [
                Text('Top Row'),
                Text('Bottom Row'),
              ],
            );
          }
        },
      ),
    );
  }
}
回到顶部