Flutter UI组件插件smkit_ui_flutter_plugin的使用

Flutter UI组件插件smkit_ui_flutter_plugin的使用

smkit_ui_flutter_plugin

smkit_ui_flutter_plugin 是一个用于Flutter的插件项目。它包含针对Android和/或iOS平台的特定实现代码。

开始使用

此项目是一个Flutter插件包的起点,具体可以参考官方文档中的插件开发指南

如果您需要了解如何开始Flutter开发,可以查看Flutter官方文档,其中包含了教程、示例、移动开发指导以及完整的API参考。


示例代码

以下是一个完整的示例代码,展示如何在Flutter应用中使用 smkit_ui_flutter_plugin 插件。

示例代码

// 导入必要的库
import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:smkit_ui_flutter_plugin/models/sm_workout.dart';
import 'package:smkit_ui_flutter_plugin/smkit_ui_flutter_plugin.dart';

// 主应用类
void main() {
  runApp(const MyApp());
}

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

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  // 初始化插件实例
  final _smkitUiFlutterPlugin = SmkitUiFlutterPlugin();
  String apiPublicKey = "YOUR_AUTH_KEY"; // 替换为您的API公钥
  bool isConfigured = false;

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  // 初始化插件状态
  Future<void> initPlatformState() async {
    // 如果组件从树中移除,则不更新状态
    if (!mounted) return;

    setState(() {});
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              // 配置按钮
              ElevatedButton(
                onPressed: () async {
                  await _smkitUiFlutterPlugin
                      .configure(key: apiPublicKey)
                      .then((result) => {
                            setState(() {
                              isConfigured = result == true;
                            });
                          });
                },
                child: const Text('配置插件'),
              ),
              // 启动评估按钮(仅在已配置时显示)
              isConfigured
                  ? ElevatedButton(
                      onPressed: () {
                        _smkitUiFlutterPlugin.startAssessment();
                      },
                      child: const Text('启动评估'),
                    )
                  : const SizedBox(),
              // 启动自定义训练按钮(仅在已配置时显示)
              isConfigured
                  ? ElevatedButton(
                      onPressed: () {
                        _smkitUiFlutterPlugin.startCustomWorkout(
                          workout: getDemoWorkout(),
                        );
                      },
                      child: const Text('启动自定义训练'),
                    )
                  : const SizedBox(),
            ],
          ),
        ),
      ),
    );
  }

  // 获取示例训练数据
  SMWorkout getDemoWorkout() {
    List<SMExercise> exercises = [
      SMExercise(
        name: "第一个练习",
        totalSeconds: 35, // 总秒数
        introSeconds: 5, // 引导秒数
        videoInstruction: null, // 没有视频指导
        exerciseIntro: null, // 没有练习介绍
        uiElements: [UIElement.RepsCounter, UIElement.GaugeOfMotion], // 用户界面元素
        detector: "HighKnees", // 动作检测器
        repBased: true, // 基于重复次数
        exerciseClosure: null, // 练习关闭回调
        targetReps: 13, // 目标重复次数
        targetTime: 20, // 目标时间
        scoreFactor: 0.3, // 分数因子
      ),
      SMExercise(
        name: "第二个练习",
        totalSeconds: 25,
        introSeconds: 5,
        videoInstruction: null,
        exerciseIntro: null,
        uiElements: [UIElement.GaugeOfMotion, UIElement.Timer],
        detector: "SquatRegularOverheadStatic",
        repBased: false, // 基于时间
        exerciseClosure: null,
        targetReps: null, // 无目标重复次数
        targetTime: 20,
        scoreFactor: 0.3,
      ),
    ];

    return SMWorkout(
      id: "50",
      name: "示例训练",
      workoutIntro: null,
      soundTrack: null,
      exercises: exercises,
      getInFrame: null,
      bodycalFinished: null,
      workoutClosure: null,
    );
  }
}

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

1 回复

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


smkit_ui_flutter_plugin 是一个用于 Flutter 的 UI 组件插件,它提供了一系列预构建的 UI 组件,帮助开发者快速构建美观且功能丰富的应用程序。以下是如何使用 smkit_ui_flutter_plugin 的基本步骤:

1. 添加依赖

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

dependencies:
  flutter:
    sdk: flutter
  smkit_ui_flutter_plugin: ^版本号

请将 ^版本号 替换为最新的版本号。你可以在 pub.dev 上查找最新的版本。

2. 安装依赖

在终端中运行以下命令来安装依赖:

flutter pub get

3. 导入插件

在你的 Dart 文件中导入 smkit_ui_flutter_plugin

import 'package:smkit_ui_flutter_plugin/smkit_ui_flutter_plugin.dart';

4. 使用组件

smkit_ui_flutter_plugin 提供了多种 UI 组件,你可以直接在代码中使用它们。以下是一些常见组件的使用示例:

按钮组件

SMIButton(
  text: 'Click Me',
  onPressed: () {
    print('Button Pressed');
  },
)

输入框组件

SMITextField(
  hintText: 'Enter your name',
  onChanged: (value) {
    print('Input changed: $value');
  },
)

卡片组件

SMICard(
  child: Text('This is a card'),
)

对话框组件

SMIDialog(
  title: 'Alert',
  content: Text('This is a dialog'),
  actions: [
    SMIButton(
      text: 'OK',
      onPressed: () {
        Navigator.pop(context);
      },
    ),
  ],
)

5. 自定义样式

smkit_ui_flutter_plugin 允许你通过传递参数来自定义组件的样式。例如,你可以自定义按钮的颜色、大小等。

SMIButton(
  text: 'Custom Button',
  backgroundColor: Colors.blue,
  textColor: Colors.white,
  onPressed: () {
    print('Custom Button Pressed');
  },
)

6. 运行应用

完成上述步骤后,你可以运行你的 Flutter 应用来查看 smkit_ui_flutter_plugin 组件的效果。

flutter run
回到顶部