Flutter自定义组件插件sm_widget的使用

Flutter自定义组件插件sm_widget的使用

安装

添加依赖

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

dependencies:
  sm_widget: ^0.0.1

然后运行以下命令以获取依赖:

dart pub get

或者直接通过 Flutter 命令来添加依赖:

flutter pub add sm_widget

使用示例

接下来我们将展示如何使用 sm_widget 插件。我们将创建一个简单的 Flutter 应用程序,并使用该库中的多个组件。

示例代码

首先,确保你已经添加了 sm_widget 依赖并获取了依赖项。然后,你可以使用以下示例代码来构建一个包含多个 sm_widget 组件的应用程序。

主文件 (main.dart)

import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:sm_widget/sm_widget.dart';

// 导入自定义组件
import 'base_list_view.dart';
import 'button/button_example_list.dart';
import 'circle_avatar_example.dart';
import 'container_example.dart';
import 'dialog_example.dart';
import 'expandable_example.dart';
import 'list_tile_example.dart';
import 'text/text_example_list.dart';
import 'text_field/text_field_example_list.dart';

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

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

  // 定义要展示的组件列表
  List<Widget> get itemList => [
        const MContainerExample(),   // 自定义容器组件示例
        const MTextExampleList(),    // 自定义文本组件示例
        const MButtonExampleList(),  // 自定义按钮组件示例
        const MCircleAvatarExample(),// 自定义圆形头像组件示例
        const MDialogExample(),      // 自定义对话框组件示例
        const MCupertinoDialogExample(), // Cupertino风格对话框组件示例
        const MListTileExample(),    // 自定义列表项组件示例
        const ExpandableExample(),   // 可展开的组件示例
        const MTextFieldExampleList(), // 自定义文本输入框组件示例
      ];

  [@override](/user/override)
  Widget build(BuildContext context) {
    return GetMaterialApp(
      theme: ThemeData(
        colorSchemeSeed: const Color(0xff6750a4),
        useMaterial3: true,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: const MText('SMWidget Example'), // 使用自定义的MText组件
        ),
        body: BaseListView(
          itemList: itemList, // 展示组件列表
        ),
      ),
    );
  }
}

自定义组件示例

为了更好地理解每个组件的使用方法,这里列出一些具体的组件示例。

自定义容器组件 (MContainerExample)

class MContainerExample extends StatelessWidget {
  const MContainerExample({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Container(
      padding: EdgeInsets.all(16),
      decoration: BoxDecoration(
        border: Border.all(color: Colors.blue),
        borderRadius: BorderRadius.circular(8),
      ),
      child: Text('这是一个自定义容器组件'),
    );
  }
}

自定义文本组件 (MTextExampleList)

class MTextExampleList extends StatelessWidget {
  const MTextExampleList({Key? key}) : super(key: key);

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Column(
      children: [
        MText('这是一段自定义文本'),
        MText('这是另一段自定义文本'),
      ],
    );
  }
}

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

1 回复

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


sm_widget 是一个用于 Flutter 的自定义组件插件,旨在简化常见 UI 组件的创建和使用。它提供了一系列预定义的、高度可定制的组件,帮助开发者快速构建美观且功能丰富的用户界面。

以下是如何在 Flutter 项目中使用 sm_widget 插件的基本步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 sm_widget 插件的依赖:

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

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

2. 导入包

在需要使用 sm_widget 的 Dart 文件中导入包:

import 'package:sm_widget/sm_widget.dart';

3. 使用组件

sm_widget 提供了多种预定义的组件,以下是一些常见组件的使用示例:

按钮组件

SMButton(
  text: 'Click Me',
  onPressed: () {
    print('Button Pressed');
  },
  color: Colors.blue,
  textColor: Colors.white,
)

卡片组件

SMCard(
  child: Column(
    children: [
      Text('Card Title'),
      Text('Card Content'),
    ],
  ),
  elevation: 5,
  margin: EdgeInsets.all(10),
)

输入框组件

SMTextField(
  hintText: 'Enter your name',
  onChanged: (value) {
    print('Input: $value');
  },
  borderColor: Colors.grey,
)

加载指示器

SMLoadingIndicator(
  size: 50,
  color: Colors.blue,
)

对话框组件

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

4. 自定义组件

sm_widget 的组件通常具有高度的可定制性。你可以通过传递不同的参数来调整组件的外观和行为。例如:

SMButton(
  text: 'Custom Button',
  onPressed: () {
    print('Custom Button Pressed');
  },
  color: Colors.red,
  textColor: Colors.white,
  borderRadius: 20,
  padding: EdgeInsets.symmetric(horizontal: 20, vertical: 10),
)

5. 主题与样式

sm_widget 支持通过 Flutter 的主题系统来统一组件的外观。你可以在 MaterialApp 中定义主题,然后在 sm_widget 组件中使用:

MaterialApp(
  theme: ThemeData(
    primaryColor: Colors.blue,
    buttonTheme: ButtonThemeData(
      buttonColor: Colors.blue,
      textTheme: ButtonTextTheme.primary,
    ),
  ),
  home: MyHomePage(),
)
回到顶部