Flutter自定义UI组件插件cramr_ui_lib的使用

Flutter自定义UI组件插件cramr_ui_lib的使用

cramr_ui_lib 是一个用于帮助记忆学习的UI库。该库提供了自动化动词变位的功能。

功能特点

  • 自动化动词变位:自动处理动词的不同时态和语态的变化。

入门指南

此项目是一个Dart包的起点,可以轻松地在多个Flutter或Dart项目中共享库模块。

要开始使用Flutter,可以查看我们的在线文档,其中包含教程、示例、移动开发指南以及完整的API参考。

示例代码

以下是如何在Flutter应用中使用cramr_ui_lib的一些代码片段:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: '你的应用标题',
      home: MyAppHomePage(title: "我的应用"),
      routes: {
        '/verbSelectionRoute': (context) => VerbSelectionRoute(),
        '/verbIndicativeStudyRoute': (context) => VerbIndicativeStudyRoute(),
        '/verbIndicativeTestRoute': (context) => VerbIndicativeTestRoute(),
        '/verbEvaluateRoute': (context) => VerbIndicativeEvaluateRoute(),
      },
    );
  }
}

class MyAppHomePage extends StatelessWidget {
  final String title;

  MyAppHomePage({required this.title});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: Text('欢迎使用 $title'),
      ),
    );
  }
}

运行效果

运行上述代码后,你会看到一个简单的Flutter应用启动页面,包含一个标题为"My App"的应用。在底部导航栏中,你可以选择不同的路由来访问不同的页面,如动词选择页面、动词时态学习页面、动词时态测试页面和动词评估页面。

完整示例Demo

以下是完整的示例Demo,包含了所有必要的文件结构和代码:

- lib/
  - main.dart
  - my_app_home_page.dart
  - verb_selection_route.dart
  - verb_indicative_study_route.dart
  - verb_indicative_test_route.dart
  - verb_indicative_evaluate_route.dart

main.dart

import 'package:flutter/material.dart';
import 'package:cramr_ui_lib/cramr_ui_lib.dart';
import 'my_app_home_page.dart';

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

my_app_home_page.dart

import 'package:flutter/material.dart';

class MyAppHomePage extends StatelessWidget {
  final String title;

  MyAppHomePage({required this.title});

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(title),
      ),
      body: Center(
        child: Text('欢迎使用 $title'),
      ),
    );
  }
}

verb_selection_route.dart

import 'package:flutter/material.dart';

class VerbSelectionRoute extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("动词选择"),
      ),
      body: Center(
        child: Text("这里是动词选择页面"),
      ),
    );
  }
}

verb_indicative_study_route.dart

import 'package:flutter/material.dart';

class VerbIndicativeStudyRoute extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("动词时态学习"),
      ),
      body: Center(
        child: Text("这里是动词时态学习页面"),
      ),
    );
  }
}

verb_indicative_test_route.dart

import 'package:flutter/material.dart';

class VerbIndicativeTestRoute extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("动词时态测试"),
      ),
      body: Center(
        child: Text("这里是动词时态测试页面"),
      ),
    );
  }
}

verb_indicative_evaluate_route.dart

import 'package:flutter/material.dart';

class VerbIndicativeEvaluateRoute extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("动词评估"),
      ),
      body: Center(
        child: Text("这里是动词评估页面"),
      ),
    );
  }
}

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

1 回复

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


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

1. 添加依赖

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

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

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

2. 导入库

在你的 Dart 文件中导入 cramr_ui_lib

import 'package:cramr_ui_lib/cramr_ui_lib.dart';

3. 使用组件

cramr_ui_lib 提供了多种自定义 UI 组件,你可以直接在应用程序中使用它们。以下是一些常见组件的使用示例:

3.1 按钮组件

cramr_ui_lib 提供了一些自定义按钮组件,例如 PrimaryButtonSecondaryButton

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

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

3.2 卡片组件

cramr_ui_lib 提供了一个自定义卡片组件 CustomCard,可以轻松地创建带有阴影和圆角的卡片。

CustomCard(
  child: Padding(
    padding: EdgeInsets.all(16.0),
    child: Text('This is a custom card'),
  ),
);

3.3 输入框组件

cramr_ui_lib 提供了一个自定义输入框组件 CustomTextField,支持多种样式和验证功能。

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

3.4 加载指示器

cramr_ui_lib 提供了一个自定义加载指示器 CustomLoadingIndicator,用于在加载数据时显示。

CustomLoadingIndicator(
  size: 50.0,
  color: Colors.blue,
);

4. 自定义主题

cramr_ui_lib 允许你通过自定义主题来统一应用程序的 UI 风格。你可以在 MaterialApp 中设置主题:

MaterialApp(
  theme: ThemeData(
    primarySwatch: Colors.blue,
    // 其他主题设置
  ),
  home: MyHomePage(),
);

5. 高级用法

cramr_ui_lib 还提供了一些高级组件和功能,例如 CustomDialogCustomSnackBar 等。你可以参考官方文档或示例代码来了解更多高级用法。

6. 示例代码

以下是一个简单的 Flutter 应用程序示例,展示了如何使用 cramr_ui_lib 中的一些组件:

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

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

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

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Cramr UI Lib Example'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            PrimaryButton(
              onPressed: () {
                print('Primary Button Pressed');
              },
              text: 'Click Me',
            ),
            SizedBox(height: 20),
            SecondaryButton(
              onPressed: () {
                print('Secondary Button Pressed');
              },
              text: 'Click Me',
            ),
            SizedBox(height: 20),
            CustomCard(
              child: Padding(
                padding: EdgeInsets.all(16.0),
                child: Text('This is a custom card'),
              ),
            ),
            SizedBox(height: 20),
            CustomTextField(
              hintText: 'Enter your name',
              onChanged: (value) {
                print('Input: $value');
              },
            ),
            SizedBox(height: 20),
            CustomLoadingIndicator(
              size: 50.0,
              color: Colors.blue,
            ),
          ],
        ),
      ),
    );
  }
}
回到顶部