Flutter可长按按钮插件holdable_button的使用

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

Flutter可长按按钮插件holdable_button的使用

介绍

Holdable Button 是一个Flutter插件,允许您创建带有独特动画的交互式按钮。它使用户能够按住按钮,在其边界显示加载动画,并在动画完成后触发回调。

动画演示 🎥

边缘加载类型:

voice oval

rectangle square

填充加载类型:

long circle

特点 🚀

  • 交互式动画:通过响应长按操作的按钮吸引用户,提供互动且视觉上吸引人的体验。
  • 可定制:通过调整按钮颜色、加载颜色、圆角半径、子部件、动画持续时间和起始位置等参数来匹配您的应用程序设计。
  • 用户参与度:通过引入一种新颖的方式来触发操作,鼓励用户与您的应用进行互动。

如何使用 🛠️

  1. pubspec.yaml 文件中添加 Holdable Button 插件:

    dependencies:
      holdable_button: any
    
  2. 运行以下命令安装插件:

    flutter pub get
    
  3. 在 Dart 代码中导入包:

    import 'package:holdable_button/holdable_button.dart';
    
  4. 实现 HoldableButton 小部件:

    HoldableButton(
      loadingType: LoadingType.edgeLoading,
      width: 300,
      height: 200,
      buttonColor: Colors.blue,
      loadingColor: Colors.white,
      radius: 15.0,
      child: Text('Hold Me'),
      duration: 5,
      startPoint: 0.25,
      hasVibrate: true,
      onConfirm: () {
        // 动画完成后的回调函数
        print("Button held successfully!");
      },
    )
    

自定义选项 ⚙️

HoldableButton 小部件支持以下参数:

  • loadingType: 加载类型:edgeLoading 或 fillingLoading。
  • buttonColor: 按钮的颜色。
  • loadingColor: 加载动画的颜色。
  • radius: 按钮的圆角半径。
  • child: 按钮内部的小部件。
  • duration: 动画持续时间(秒)。
  • startPoint: edgeLoading 类型的起始位置。
  • hasVibrate: 加载完成后是否启用震动。
  • onConfirm: 动画完成后的回调函数。

您可以自由尝试这些参数以实现所需的外观和行为。

示例 Demo

下面是一个完整的示例 demo,展示了如何使用 holdable_button 插件:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Holdable Button Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Holdable Button Example'),
        ),
        body: Center(
          child: Padding(
            padding: EdgeInsets.all(16.0),
            child: HoldableButton(
              loadingType: LoadingType.edgeLoading,
              width: 200,
              height: 100,
              buttonColor: Colors.blue,
              loadingColor: Colors.white,
              radius: 15.0,
              child: Text('Hold Me', style: TextStyle(color: Colors.white)),
              duration: 5,
              startPoint: 0.25,
              hasVibrate: true,
              onConfirm: () {
                ScaffoldMessenger.of(context).showSnackBar(
                  SnackBar(content: Text('Button held successfully!')),
                );
              },
            ),
          ),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,以下是如何在Flutter中使用holdable_button插件的一个代码示例。这个插件允许你创建一个可以长按的按钮,并在按钮被按下和释放时执行不同的操作。

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

dependencies:
  flutter:
    sdk: flutter
  holdable_button: ^x.y.z  # 请替换为最新版本号

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

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

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Holdable Button Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('Holdable Button Demo'),
        ),
        body: Center(
          child: HoldableButton(
            onPressed: () {
              // 短按事件
              print('Button tapped!');
            },
            onHeld: (Duration duration) {
              // 长按事件,`duration`是长按的持续时间
              print('Button held for $duration');
            },
            child: Text(
              'Hold Me',
              style: TextStyle(fontSize: 24, color: Colors.white),
            ),
            color: Colors.blue,
            highlightColor: Colors.lightBlueAccent,
            minHoldDuration: Duration(seconds: 1), // 长按的最小持续时间
          ),
        ),
      ),
    );
  }
}

在这个示例中:

  • HoldableButtononPressed属性用于定义短按按钮时的行为。
  • onHeld属性用于定义长按按钮时的行为,它接收一个Duration对象,表示长按的持续时间。
  • child属性定义了按钮的内容,这里是一个简单的文本。
  • color属性定义了按钮的默认颜色。
  • highlightColor属性定义了按钮被按下时的颜色。
  • minHoldDuration属性定义了触发长按事件所需的最小持续时间。

运行这个应用后,当你短按按钮时,控制台会输出"Button tapped!"。当你长按按钮超过1秒时,控制台会输出"Button held for $duration",其中$duration是长按的持续时间。

希望这个示例能帮助你理解如何在Flutter中使用holdable_button插件!

回到顶部