Flutter通用按钮组件插件common_button的使用

Flutter通用按钮组件插件common_button的使用

在Flutter项目中,经常需要使用到自定义的通用按钮。common_button插件可以方便地创建这样的按钮。

功能特性

common_button

  • 如何使用它
  • 参数

如何使用它

common_button

默认效果为 Icons.favorite

CommonButton(),
// 给一些参数

你还可以定义自定义的用法:

CommonButton(
    onPress: _incrementCounter,
    text: "Counter",
    textAlign: Alignment.center,
    tColor: Colors.white,
    bgColor: Colors.orange,
    isIcon: false,
    customShape: 1,
),

参数

参数名 描述 默认值
customShape 按钮形状:1 StadiumBorder, 2 RoundedRectangleBorder, 3 CircleBorder StadiumBorder
bgColor 背景颜色
tColor 文本颜色
isIcon 是否启用图标

示例代码

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

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

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

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

  // 这个小部件是你的应用的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        // 这是你的应用的主题。
        //
        // 尝试运行你的应用并输入"flutter run"。你会看到一个带有蓝色工具栏的应用。
        // 然后,在不退出应用的情况下,尝试将primarySwatch改为Colors.green,并触发"热重载"(在控制台按"r"键,或直接保存更改来触发热重载)。
        // 注意,计数器并没有重置回零;应用并没有重新启动。
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  const MyHomePage({super.key, required this.title});

  // 这个小部件是你的应用的主页。它是有状态的,意味着它有一个包含影响其外观的字段的状态对象。
  // 这个类是状态的配置。它保存了由父级提供的值(在这个例子中是标题),并在构建方法中使用这些值。
  // 小部件子类中的字段总是标记为"final"。

  final String title;

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

class _MyHomePageState extends State<MyHomePage> {
  int _counter = 0;

  void _incrementCounter() {
    setState(() {
      // 这次调用setState告诉Flutter框架某些事情已经改变,这会导致它重新运行构建方法以反映更新后的值。
      // 如果我们不调用setState而只是改变了_counter,那么构建方法就不会被再次调用,因此什么也不会发生。
      _counter++;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 每次setState被调用时,这个方法都会被重新运行,例如通过上面的_incrementCounter方法。
    //
    // Flutter框架已经被优化,使得重建方法变得快速,这样你就可以重建任何需要更新的东西,而不是逐个改变小部件实例。
    return Scaffold(
      appBar: AppBar(
        // 在这里,我们从MyHomePage对象中获取值,该对象是由App.build方法创建的,并将其用于设置我们的appbar标题。
        title: Text(widget.title),
      ),
      body: Center(
        // Center是一个布局小部件。它接受一个子元素并将其放置在父元素的中间。
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Container(
              padding: const EdgeInsets.symmetric(horizontal: 20),
              child: CommonButton(
                onPress: _incrementCounter,
                text: "Counter",
                textAlign: Alignment.center,
                tColor: Colors.white,
                bgColor: Colors.orange,
                isIcon: false,
                customShape: 1,
              ),
            ),
            const Text(
              '你已经按下了按钮这么多次:',
            ),
            Text(
              '$_counter',
              style: Theme.of(context).textTheme.headlineMedium,
            ),
          ],
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: _incrementCounter,
        tooltip: '增加',
        child: const Icon(Icons.add),
      ), // 这个尾随的逗号使自动格式化更美观。
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter项目中使用common_button插件的一个示例。这个示例将展示如何安装插件、导入包,并创建一个通用的按钮组件。

步骤 1: 安装 common_button 插件

首先,你需要在你的pubspec.yaml文件中添加common_button依赖。确保你的Flutter环境已经配置好,然后运行以下命令打开你的pubspec.yaml文件:

flutter open pubspec.yaml

dependencies部分添加common_button

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

保存文件后,在命令行中运行以下命令来安装依赖:

flutter pub get

步骤 2: 导入包并使用 CommonButton

在你的Dart文件中,导入common_button包,并使用CommonButton组件。以下是一个简单的示例:

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

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

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

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Common Button Demo'),
      ),
      body: Center(
        child: CommonButton(
          text: 'Click Me',
          onPressed: () {
            // 按钮点击事件处理
            ScaffoldMessenger.of(context).showSnackBar(
              SnackBar(content: Text('Button Clicked!')),
            );
          },
          color: Colors.blue,
          textColor: Colors.white,
          borderRadius: BorderRadius.circular(18),
          fontSize: 18,
          fontWeight: FontWeight.bold,
          height: 50,
          minWidth: double.infinity, // 让按钮宽度充满父容器
        ),
      ),
    );
  }
}

解释

  1. 导入包

    import 'package:common_button/common_button.dart';
    
  2. 使用 CommonButton

    • text:按钮上显示的文本。
    • onPressed:按钮点击时的回调函数。
    • color:按钮的背景颜色。
    • textColor:按钮上的文本颜色。
    • borderRadius:按钮的圆角半径。
    • fontSize:按钮文本的字体大小。
    • fontWeight:按钮文本的字体粗细。
    • height:按钮的高度。
    • minWidth:按钮的最小宽度。这里设置为double.infinity让按钮宽度充满父容器。

这个示例展示了如何使用common_button插件来创建一个具有自定义样式和点击事件的按钮。你可以根据需要调整这些属性来满足你的UI设计需求。

回到顶部