Flutter UI组件插件shoko_ui的使用

发布于 1周前 作者 ionicwang 来自 Flutter

Flutter UI组件插件shoko_ui的使用

简介

Shoko UI 是一个为 Flutter 提供现成小部件的用户界面库。它允许开发者快速设置应用程序的主题,并提供了多种可立即使用的组件,如开关、文本框和按钮等。此外,该库还计划在未来添加更多功能,如徽章、单选按钮、复选框、代码字段、Snackbar、AppBar、进度条、Scaffold 以及模态窗口等。

功能特点

  • 应用主题设置
    • 自定义每个库组件的主题
    • 设置背景主题
    • 设置内容主题
    • 提供一组可自定义的文字样式
  • 现成的小部件
    • Switch(开关)
    • TextField(文本框)
    • Button(按钮)
  • 即将推出的小部件
    • Badge(徽章)
    • Radio(单选按钮,正在重写中)
    • Checkbox(复选框)
    • Code Field(代码字段,正在重写中)
    • Snackbar(提示信息)
    • AppBar(应用栏)
    • Progress(进度条)
    • Scaffold(支架)
  • 模态窗口
    • DialogBase, Dialog
    • ModalBottomSheetBase, ModalBottomSheet
    • Popover

示例代码

以下是一个完整的示例代码,展示了如何使用 shoko_ui 插件来创建一个简单的 Flutter 应用程序。该应用程序包含了一个带有两个按钮的页面,并且可以通过切换开关来改变主题颜色。

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

// 定义白色主题
const whiteTheme = STheme(switchTheme: SSwitchTheme(backgroundColor: Colors.black));

// 定义深色主题
const darkTheme = STheme(switchTheme: SSwitchTheme(backgroundColor: Colors.red));

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

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: SThemeWidget(
        // 设置 Shoko UI 的主题
        shokoUITheme: STheme(
          badgeTheme: SBadgeTheme(
            alertColor: Colors.red, 
            textAlertColor: Colors.white
          ),
          contentTheme: SContentColors(
            primary: Colors.black,
            invertPrimary: Colors.white,
            secondary: Color.fromRGBO(155, 155, 155, 1),
            tertiary: Color.fromRGBO(64, 64, 64, 1),
            brand: Color.fromRGBO(126, 127, 251, 1),
            success: Colors.green,
            alert: Colors.red,
          ),
          backgroundTheme: SBackgroundColors(
            primary: Colors.white,
            secondary: Color.fromRGBO(250, 250, 250, 1),
            tertiary: Color.fromRGBO(235, 237, 240, 1),
            brand: Color.fromRGBO(126, 127, 251, 1),
            brandLight: Color.fromRGBO(229, 229, 254, 1),
            success: Colors.green,
            successLight: Color.fromRGBO(229, 255, 237, 1),
            alert: Colors.red,
            alertLight: Color.fromRGBO(255, 233, 232, 1),
          ),
        ),
        child: MyHomePage(),
      ),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key});

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

class _MyHomePageState extends State<MyHomePage> {
  bool state = false;

  void onChanged(bool value) {
    setState(() {
      state = value;
    });
    // 切换主题
    context.changeTheme(state ? whiteTheme : darkTheme);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: context.theme.backgroundTheme.secondary, // 设置背景颜色
      body: Center(
        child: Row(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            // 带有边框的按钮
            SButton(
              onTap: () {}, // 点击事件
              isOutline: true, // 是否带边框
              child: SButtonContent.text('Button'), // 按钮内容
              color: Colors.purple, // 按钮颜色
            ),
            // 普通按钮
            SButton(
              onTap: () {}, // 点击事件
              child: SButtonContent.text('Button'), // 按钮内容
              color: Colors.purple, // 按钮颜色
            ),
          ],
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用shoko_ui插件的一个简单示例。shoko_ui是一个Flutter UI组件库,它提供了一些预定义的UI组件来加速开发过程。请注意,由于我无法实时检查最新版本的shoko_ui库及其具体组件,以下代码基于假设的组件和用法,你可能需要根据实际文档进行调整。

首先,确保你已经在pubspec.yaml文件中添加了shoko_ui依赖:

dependencies:
  flutter:
    sdk: flutter
  shoko_ui: ^最新版本号  # 替换为实际的最新版本号

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

接下来,在你的Flutter应用中使用shoko_ui提供的组件。假设shoko_ui提供了一个名为ShokoButton的按钮组件,下面是如何使用这个组件的示例代码:

import 'package:flutter/material.dart';
import 'package:shoko_ui/shoko_ui.dart';  // 导入shoko_ui包

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Shoko UI Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Shoko UI Demo'),
      ),
      body: Center(
        child: ShokoButton(
          onPressed: () {
            // 按钮点击事件处理
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(content: Text('按钮被点击了!')),
            );
          },
          child: Text('点击我'),
          color: Colors.blue,
          textColor: Colors.white,
          // 其他可能的属性,根据shoko_ui文档进行设置
        ),
      ),
    );
  }
}

在这个示例中,我们做了以下几件事:

  1. pubspec.yaml文件中添加了shoko_ui依赖。
  2. 导入shoko_ui包。
  3. 创建了一个简单的Flutter应用,其中包含一个使用ShokoButton组件的页面。
  4. 设置了按钮的点击事件,当按钮被点击时,显示一个SnackBar。

请注意,ShokoButton及其属性(如colortextColor)是假设的,实际使用时需要参考shoko_ui的官方文档来确定正确的组件名称和属性。

此外,由于UI库可能会更新并添加新的组件或更改现有组件的API,因此建议始终参考最新的官方文档和示例代码。

回到顶部