Flutter开关按钮插件flutter_toggle_button的使用

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

Flutter 开关按钮插件 flutter_toggle_button 的使用

插件简介

flutter_toggle_button 是一个可定制的 Flutter 组件,用于创建具有各种配置的开关按钮,如按钮大小、颜色、渐变和文本样式。

以下是几个示例图片: Example 01 Example 02 Example 03 Example 04 Example 05 Example 06

Example 07

特性

  • 自定义设计:可以配置按钮宽度、高度、圆角、颜色、渐变等。
  • 灵活内容:支持多种类型的内容,包括文本、数字和小部件。
  • 回调支持:提供按钮点击时的回调函数,便于与其他功能集成。

安装步骤

pubspec.yaml 文件中添加以下依赖项:

dependencies:
  custom_toggle_button: ^1.0.0 // Replace with latest version

使用方法

导入包到 Dart 代码中:

import 'package:custom_toggle_button/flutter_toggle_button.dart';

在 Flutter 应用程序中使用 FlutterToggleButton 小部件:

FlutterToggleButton(
  items: ['Option 1', 'Option 2', 'Option 3'],
  onTap: (index) {
    print('Selected index: $index');
  },
  // 根据需要自定义其他属性
)

更详细的例子如下:

FlutterToggleButton(
  outerContainerColor: Colors.grey,
  borderRadius: 60,
  items: const ['Option 1', 'Option 2', 'Option 3'],
  buttonGradient: const LinearGradient(
    colors: [Color(0xffcc2b5e), Color(0xff753a88)],
  ),
  onTap: (index) {
    print('Selected index = $index');
  },
  // 根据需要自定义其他属性
)

参数说明

参数 默认值 描述
items 必填 显示为按钮的项目列表。
outerContainerMargin 7.87 外容器的边距。
buttonWidth 139 每个按钮的宽度。
buttonHeight 68 每个按钮的高度。
borderRadius 108 按钮和外容器的圆角半径。
buttonTextFontSize 22 按钮文本的字体大小。
enableTextFontWeight FontWeight.w600 启用按钮时文本的字体粗细。
disableTextFontWeight FontWeight.w500 禁用按钮时文本的字体粗细。
enableTextColor Colors.white 启用按钮时的文本颜色。
disableTextColor Color(0xff7A7A7A) 禁用按钮时的文本颜色。
outerContainerColor None 外容器的纯色。提供此选项或 outerContainerGradient,不能同时提供。
buttonColor None 按钮的纯色。提供此选项或 buttonGradient,不能同时提供。
outerContainerGradient None 外容器的渐变。提供此选项或 outerContainerColor,不能同时提供。
buttonGradient None 按钮的渐变。提供此选项或 buttonColor,不能同时提供。
outerContainerBorderColor Colors.transparent 外容器的边框颜色。
outerContainerBorderWidth 0 外容器的边框宽度。
buttonBorderColor Colors.transparent 按钮的边框颜色。
buttonBorderWidth 0 按钮的边框宽度。
onTap None 按钮点击时的回调函数。

示例代码

完整的示例代码如下:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Custom Toggle Button Example'),
        ),
        body: Center(
          child: FlutterToggleButton(
            items: ['Option 1', 'Option 2', 'Option 3'],
            onTap: (index) {
              print('Selected index: $index');
            },
            buttonWidth: 120, // 按钮宽度
            buttonHeight: 50, // 按钮高度
            borderRadius: 25, // 圆角半径
            buttonTextFontSize: 18, // 文本字体大小
            enableTextColor: Colors.white, // 启用状态下的文本颜色
            disableTextColor: Colors.grey, // 禁用状态下的文本颜色
            buttonGradient: LinearGradient(
              colors: [Colors.blue, Colors.green], // 渐变颜色
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,下面是一个关于如何使用Flutter的flutter_toggle_button插件的示例代码。这个插件允许你在Flutter应用中创建漂亮的开关按钮。

首先,你需要在你的pubspec.yaml文件中添加这个插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_toggle_button: ^2.0.0  # 请检查最新版本号并替换

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

接下来,在你的Flutter应用中,你可以按照以下方式使用这个插件:

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

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

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

class ToggleButtonDemo extends StatefulWidget {
  @override
  _ToggleButtonDemoState createState() => _ToggleButtonDemoState();
}

class _ToggleButtonDemoState extends State<ToggleButtonDemo> {
  bool isSwitched = false;

  void handleToggle() {
    setState(() {
      isSwitched = !isSwitched;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Toggle Button Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            // 使用 Flutter Toggle Button
            ToggleButton(
              index: isSwitched ? 1 : 0,  // 根据状态设置按钮索引
              labels: ['Off', 'On'],  // 按钮标签
              onPressed: (index) {
                setState(() {
                  isSwitched = index == 1;
                });
                // 可以在这里添加其他逻辑,比如更新UI或发送数据
                print('Button toggled to: ${isSwitched ? 'On' : 'Off'}');
              },
              icons: [
                Icons.power_settings_new_outlined,  // Off 状态图标
                Icons.power_settings_new,          // On 状态图标
              ],
              selectedColor: Colors.blue,  // 选中颜色
              unselectedColor: Colors.grey,  // 未选中颜色
              unselectedLabelStyle: TextStyle(color: Colors.black),  // 未选中标签样式
              selectedLabelStyle: TextStyle(color: Colors.white),  // 选中标签样式
            ),
          ],
        ),
      ),
    );
  }
}

这个示例代码展示了如何使用flutter_toggle_button插件来创建一个简单的开关按钮,并在按钮状态改变时执行一些操作(比如打印日志)。

关键点解释:

  1. 依赖项:在pubspec.yaml文件中添加flutter_toggle_button的依赖。
  2. 状态管理:使用StatefulWidget来管理开关按钮的状态。
  3. 按钮配置
    • index:当前按钮的状态(0表示关闭,1表示打开)。
    • labels:按钮的标签数组(第一个标签对应关闭状态,第二个标签对应打开状态)。
    • onPressed:按钮点击时的回调函数。
    • icons:按钮的图标数组(第一个图标对应关闭状态,第二个图标对应打开状态)。
    • selectedColorunselectedColor:选中和未选中状态的颜色。
    • selectedLabelStyleunselectedLabelStyle:选中和未选中状态的标签样式。

这样,你就可以在你的Flutter应用中轻松地添加和使用flutter_toggle_button插件了。

回到顶部