Flutter悬浮效果插件flutter_hover_effect的使用

Flutter悬浮效果插件flutter_hover_effect的使用

flutter_hover_effect 是一个用于在 Flutter 应用中为任何小部件添加交互式悬停和倾斜效果的包。通过使用此插件,您可以增强用户体验,使其更加流畅和响应。

特性

flutter_hover_effect 可以快速简便地为任何小部件添加悬停或倾斜效果。

开始使用

要将 flutter_hover_effect 添加到您的项目中,请执行以下命令:

$ flutter pub add flutter_hover_effect

或者,在您的 pubspec.yaml 文件中添加依赖项:

dependencies:
  flutter_hover_effect:

然后运行 flutter pub get 来安装该包。

使用方法

简单示例

以下是一个简单的示例,展示如何使用 flutter_hover_effect 包来为文本添加悬停效果。更复杂的示例可以在 /example 文件夹中找到。

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

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

  // 这个小部件是应用的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: ExamplePage(),
    );
  }
}

class ExamplePage extends StatelessWidget {
  ExamplePage({
    super.key,
  });

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color(0xff191d2d),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          HoverEffect(
            widget: const Column(
              children: [
                Text(
                  'Flutter Hover Effect',
                  style: TextStyle(fontSize: 17.0, fontWeight: FontWeight.w600),
                ),
              ],
            ),
          ),
        ],
      ),
    );
  }
}

复杂示例

下面是一个更复杂的示例,展示了如何为不同类型的组件(如卡片和圆形图像)添加悬停效果。

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

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

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

  // 这个小部件是应用的根。
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      home: ExamplePage(),
    );
  }
}

class ExamplePage extends StatelessWidget {
  ExamplePage({
    super.key,
  });

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      backgroundColor: const Color(0xff191d2d),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          HoverEffect(
            widget: const Column(
              children: [
                Text(
                  'Flutter Hover Effect',
                  style: TextStyle(fontSize: 17.0, fontWeight: FontWeight.w600),
                ),
                Row(
                  mainAxisAlignment: MainAxisAlignment.spaceAround,
                  children: [
                    Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Text('这是一个卡片示例'),
                        Text('使用悬停效果'),
                      ],
                    ),
                    Column(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: [
                        Text('喜欢这个包'),
                        Text('喜欢这个仓库'),
                      ],
                    )
                  ],
                )
              ],
            ),
          ),
          const SizedBox(
            height: 56.0,
          ),
          HoverEffect(
              padding: EdgeInsets.zero,
              boxShadowColor: Colors.purple,
              boxShadowBlurRadius: 16.0,
              amplitude: .5,
              returnOriginalPosition: false,
              height: 200,
              width: 200,
              backgroundColor: Colors.transparent,
              shape: BoxShape.circle,
              widget: Container(
                decoration: const BoxDecoration(
                  shape: BoxShape.circle,
                  image: DecorationImage(
                    image: NetworkImage(
                      'https://picsum.photos/250?image=9',
                    ),
                  ),
                ),
              )),
        ],
      ),
    );
  }
}

更多关于Flutter悬浮效果插件flutter_hover_effect的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter悬浮效果插件flutter_hover_effect的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,以下是一个使用Flutter悬浮效果插件 flutter_hover_effect 的代码示例。这个插件允许你为Widget添加悬浮效果,比如放大、变色等。

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

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

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

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

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

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Flutter Hover Effect Example'),
        ),
        body: Center(
          child: HoverEffect(
            // 设置悬浮效果
            hoverChild: Container(
              width: 200,
              height: 200,
              color: Colors.blue,
              child: Center(
                child: Text(
                  'Hover Me',
                  style: TextStyle(color: Colors.white, fontSize: 24),
                ),
              ),
            ),
            // 设置正常状态下的子Widget
            normalChild: Container(
              width: 200,
              height: 200,
              color: Colors.grey,
              child: Center(
                child: Text(
                  'Normal',
                  style: TextStyle(color: Colors.white, fontSize: 24),
                ),
              ),
            ),
            // 设置悬浮效果的动画参数
            hoverEffect: HoverEffectParams(
              scale: 1.2, // 悬浮时放大比例
              color: Colors.red, // 悬浮时颜色
              curve: Curves.easeInOut, // 动画曲线
              duration: Duration(milliseconds: 300), // 动画持续时间
            ),
          ),
        ),
      ),
    );
  }
}

在上面的代码中:

  1. 我们首先导入了 flutter_hover_effect 插件。
  2. 创建了一个 MyAppStatelessWidget,其中包含一个 Scaffold,并在 body 中使用 Center 来居中显示我们的 HoverEffect Widget。
  3. HoverEffect Widget 接收两个子Widget:hoverChildnormalChild,分别表示悬浮状态和正常状态下的子Widget。
  4. hoverEffect 参数允许我们自定义悬浮效果的动画参数,包括缩放比例、颜色、动画曲线和持续时间。

这个示例展示了如何使用 flutter_hover_effect 插件来实现一个简单的悬浮效果。你可以根据需求进一步调整动画参数和子Widget的样式。

回到顶部