Flutter动画按钮插件shrink_animation_button的使用

Flutter动画按钮插件shrink_animation_button的使用

shrink_animation_buttons

使用Flutter 💙创建收缩动画容器

使用Flutter 💙创建收缩动画卡片


简介

收缩动画按钮是指在用户界面中点击时会缩小大小的按钮。这种类型的动画通常用于向用户提供视觉反馈,表明按钮已被激活或处于“按下”状态。收缩动画按钮可以用来创建更具互动性和吸引力的用户体验。


示例

flutter_web_base demo gif

安装

将该插件添加到你的依赖项中:

dependencies:
  shrink_animation_buttons: ^1.0.0

或者

dependencies:
  shrink_animation_buttons:
    git: https://github.com/Abhishek-165/shrink_animation_buttons.git

你可以在这里查看示例应用。

最后,运行 dart pub get 下载包。

使用此库的项目应使用Flutter的稳定版本。


如何使用

首先,你需要导入 shrink_animation_button 库:

import 'package:shrink_animation_button/shrink_animation_button.dart';

现在你可以访问 shrink_animation_button 库中的所有小部件。

小部件

shrink_animation_button 目前包含以下小部件:

  • ShrinkAnimationContainer
  • ShrinkAnimationCard

示例代码

以下是一个简单的示例,展示了如何在应用中使用 shrink_animation_button

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

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

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

  // 这个小部件是你的应用的根节点。
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: const MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

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

  final String title;

  @override
  State<MyHomePage> createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final double _height = 40;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            ShrinkAnimationCard(
              child: Padding(
                padding: EdgeInsets.all(_height),
                child: const Text("Container Button"),
              ),
            ),
            const SizedBox(
              height: 100,
            ),
            ShrinkAnimationContainer(
              height: _height,
              alignment: Alignment.center,
              margin: const EdgeInsets.symmetric(horizontal: 10),
              decoration:
                  BoxDecoration(border: Border.all(color: Colors.blueAccent)),
              child: const Text("Container Button"),
            ),
          ],
        ),
      ),
    );
  }
}

在这个示例中,我们使用了两个主要的小部件:

  • ShrinkAnimationCard:创建一个带有收缩动画效果的卡片。
  • ShrinkAnimationContainer:创建一个带有收缩动画效果的容器。

通过这些步骤,你可以在你的Flutter应用中轻松地实现收缩动画按钮。希望这对你有所帮助!


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

1 回复

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


当然,以下是如何在Flutter项目中使用shrink_animation_button插件的一个示例代码。shrink_animation_button是一个用于创建动画按钮的Flutter包,它允许按钮在点击时缩小,并在释放时恢复其原始大小。

首先,确保你已经在pubspec.yaml文件中添加了shrink_animation_button依赖:

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

然后,运行flutter pub get来获取依赖。

接下来,在你的Dart文件中,你可以这样使用ShrinkAnimationButton

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

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

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  void _onButtonPressed() {
    // 在这里处理按钮点击事件
    print('Button pressed!');
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Shrink Animation Button Demo'),
      ),
      body: Center(
        child: ShrinkAnimationButton(
          // 按钮点击事件处理函数
          onPressed: _onButtonPressed,
          // 按钮的初始大小
          initialSize: 150,
          // 按钮缩小时的最小大小
          minSize: 50,
          // 按钮的动画时长
          animationDuration: Duration(milliseconds: 300),
          // 按钮的样式
          child: ElevatedButton(
            style: ButtonStyle(
              backgroundColor: MaterialStateProperty.all(Colors.blue),
            ),
            onPressed: () {}, // 这个onPressed不需要实现,因为已经在ShrinkAnimationButton中处理了
            child: Text(
              'Click Me',
              style: TextStyle(color: Colors.white),
            ),
          ),
        ),
      ),
    );
  }
}

在这个示例中:

  1. 我们首先导入了必要的包,包括shrink_animation_button
  2. 创建了一个简单的Flutter应用,其中包含一个主页面MyHomePage
  3. MyHomePage中,我们使用ShrinkAnimationButton创建了一个动画按钮。
  4. 设置了按钮的初始大小initialSize、缩小时的最小大小minSize、动画时长animationDuration以及按钮的子组件(一个ElevatedButton)。
  5. 按钮的点击事件通过onPressed参数传递给ShrinkAnimationButton

运行这个代码,你将看到一个带有动画效果的按钮,当你点击它时,它会缩小,并在释放时恢复其原始大小。

回到顶部