Flutter开关切换插件fk_toggle的使用

Flutter开关切换插件fk_toggle的使用

插件简介

fk_toggle 是一个简单的Flutter切换按钮小部件,支持显示文本标签和图标,并且可以设置多个值进行切换,而不仅仅是两个值。此外,您还可以自定义大小和颜色。

特性

  • Toggle Items:提供切换事件回调。
  • 显示文本:可以在切换按钮上显示文本。
  • 显示图标:可以在切换按钮上显示图标。
  • 自定义大小和颜色:可以根据需要自定义切换按钮的大小和颜色。

安装方法

  1. pubspec.yaml 文件中添加依赖:

    dependencies:
      fk_toggle: ^0.1.4
    
  2. 使用命令行安装依赖:

    $ flutter pub get
    
  3. 在项目中导入插件:

    import 'package:fk_toggle/fk_toggle.dart';
    

使用示例

以下是一个完整的示例代码,展示了如何使用 fk_toggle 插件创建不同的切换按钮:

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

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

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        scaffoldBackgroundColor: const Color(0xfff5f5f5),
        primarySwatch: Colors.blue,
      ),
      home: const FkToggleSample(),
    );
  }
}

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

  [@override](/user/override)
  Widget build(BuildContext context) {
    // 定义切换事件回调
    final OnSelected selected = ((index, instance) {
      ScaffoldMessenger.of(context).hideCurrentSnackBar();
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(content: Text('Select $index, toggle ${instance.labels[index]}')),
      );
    });

    // 创建多个 FkToggle 实例
    final toggles = [
      FkToggle(
        width: 50,
        height: 30,
        labels: const ['1', '2'],
        onSelected: selected,
      ),
      FkToggle(
        width: 100,
        height: 50,
        labels: const ['one', 'two'],
        fontSize: 24,
        cornerRadius: 4,
        onSelected: selected,
      ),
      FkToggle(
        width: 50,
        height: 30,
        labels: const ['1', '2', '3', '4', '5'],
        onSelected: selected,
      ),
      FkToggle(
        width: 60,
        height: 50,
        labels: const ['ON', 'OFF'],
        cornerRadius: 30,
        onSelected: selected,
      ),
      FkToggle(
        width: 60,
        height: 40,
        icons: const [
          Icon(Icons.add_reaction),
          Icon(Icons.add_reaction_outlined),
        ],
        labels: const ['', ''],
        onSelected: selected,
      ),
      FkToggle(
        width: 120,
        height: 50,
        labels: const ['Orange', 'White'],
        selectedColor: Colors.orange,
        backgroundColor: Colors.white,
        onSelected: selected,
      ),
      FkToggle(
        width: 100,
        height: 50,
        icons: const [
          Icon(Icons.add_reaction),
        ],
        labels: const ['', 'smile'],
        onSelected: selected,
      ),
      FkToggle(
        width: 120,
        height: 50,
        selectedColor: Colors.red,
        backgroundColor: Colors.white,
        enabledElementColor: Colors.yellow,
        disabledElementColor: Colors.grey,
        icons: const [
          Icon(Icons.sentiment_satisfied_alt),
          Icon(Icons.emoji_emotions),
        ],
        labels: const ['Smile', 'Good'],
        onSelected: selected,
      ),
    ];

    return Scaffold(
      appBar: AppBar(title: const Text('Sample Toggle Switches')),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          mainAxisAlignment: MainAxisAlignment.center,
          children: toggles
              .map((e) => Padding(
                    padding: const EdgeInsets.all(10.0),
                    child: e,
                  ))
              .toList(),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter中使用fk_toggle插件来实现开关切换功能的代码示例。首先,你需要确保在你的pubspec.yaml文件中添加了fk_toggle依赖项:

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

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

接下来,在你的Flutter项目中,你可以按照以下方式使用fk_toggle

1. 导入依赖

在你的Dart文件中导入fk_toggle包:

import 'package:fk_toggle/fk_toggle.dart';

2. 使用FKToggleWidget

你可以在你的UI中使用FKToggleWidget来显示一个开关。下面是一个简单的示例,展示如何在一个页面上使用FKToggleWidget,并根据开关的状态更新UI:

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

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 StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool isSwitched = false;

  void handleSwitchChange(bool value) {
    setState(() {
      isSwitched = value;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('FKToggle Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            FKToggleWidget(
              isOn: isSwitched,
              toggleSize: 50.0,
              activeBgColor: Colors.green,
              inactiveBgColor: Colors.grey,
              activeFgColor: Colors.white,
              inactiveFgColor: Colors.white,
              toggleBorderRadius: 25.0,
              onToggle: handleSwitchChange,
            ),
            SizedBox(height: 20),
            Text(
              'Switch is ${isSwitched ? 'ON' : 'OFF'}',
              style: TextStyle(fontSize: 20),
            ),
          ],
        ),
      ),
    );
  }
}

解释

  • FKToggleWidget: 这是fk_toggle包中提供的一个开关组件。

    • isOn: 表示开关的初始状态(true为打开,false为关闭)。
    • toggleSize: 开关的大小。
    • activeBgColor: 开关打开时的背景颜色。
    • inactiveBgColor: 开关关闭时的背景颜色。
    • activeFgColor: 开关打开时的前景颜色(通常是圆点的颜色)。
    • inactiveFgColor: 开关关闭时的前景颜色。
    • toggleBorderRadius: 开关的圆角半径。
    • onToggle: 当开关状态改变时的回调函数。
  • handleSwitchChange: 这个函数会在开关状态改变时被调用,并更新isSwitched的状态。

  • Text: 显示当前开关的状态(“ON"或"OFF”)。

通过这种方式,你可以在你的Flutter应用中轻松地使用fk_toggle插件来实现开关切换功能。

回到顶部