Flutter动画菜单按钮插件animated_menu_button的使用
Flutter 动画菜单按钮插件 animated_menu_button 的使用
简介
本插件提供了可以进一步提升 UI 体验的动画按钮。
示例
以下是一个完整的示例代码,展示如何在 Flutter 应用中使用 AnimatedMenuButton
插件。
# File: example.dart
import 'package:flutter/material.dart';
import 'package:rotate_pills_animation/components/animated_,menu_button.dart'; // 假设这是正确的导入路径
class ExamplePage extends StatelessWidget {
const ExamplePage({super.key});
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: [
const Expanded(
child: Center(
child: Text("Hello world"),
),
),
SizedBox(
height: 100,
child: Row(
children: [
const SizedBox(
width: 60,
child: Icon(Icons.ac_unit),
),
const SizedBox(
width: 60,
child: Icon(Icons.ac_unit),
),
Expanded(
child: Center(
child: AnimatedMenuButton(
radius: 50, // 设置按钮的半径
homeWidget: item(
color: Colors.black, // 设置主按钮的颜色
child: const Icon(
Icons.add, // 主按钮图标
color: Colors.white,
),
),
actionWidgets: [
InkWell(
onTap: () {
print("add"); // 打印 "add",表示点击了添加操作
},
child: item(
color: Colors.green, // 设置第一个操作按钮的颜色
child: const Icon(Icons.face), // 第一个操作按钮图标
),
),
InkWell(
onTap: () {
print("image"); // 打印 "image",表示点击了图像操作
},
child: item(
color: Colors.blue, // 设置第二个操作按钮的颜色
child: const Icon(Icons.image), // 第二个操作按钮图标
),
),
InkWell(
onTap: () {
print("cached_rounded"); // 打印 "cached_rounded",表示点击了缓存操作
},
child: item(
color: Colors.red, // 设置第三个操作按钮的颜色
child: const Icon(Icons.cached_rounded), // 第三个操作按钮图标
),
)
],
animatedDuration: const Duration(milliseconds: 1000), // 设置动画持续时间
),
)),
const SizedBox(
width: 60,
child: Icon(Icons.ac_unit),
),
const SizedBox(
width: 60,
child: Icon(Icons.ac_unit),
),
],
),
)
],
),
);
}
Widget item({required Widget child, required Color color}) {
return Container(
padding: const EdgeInsets.all(5),
decoration: BoxDecoration(
shape: BoxShape.circle,
color: color,
),
child: child,
);
}
}
使用说明
-
安装插件: 在
pubspec.yaml
文件中添加依赖项:dependencies: rotate_pills_animation: ^版本号
-
导入组件: 在你的 Dart 文件中导入组件:
import 'package:rotate_pills_animation/components/animated_,menu_button.dart';
更多关于Flutter动画菜单按钮插件animated_menu_button的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter动画菜单按钮插件animated_menu_button的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
animated_menu_button
是一个 Flutter 插件,用于创建带有动画效果的菜单按钮。它可以帮助你实现一个漂亮的、带有动画的菜单按钮,用户可以点击该按钮来展开或收起菜单。
安装
首先,你需要在 pubspec.yaml
文件中添加 animated_menu_button
插件的依赖:
dependencies:
flutter:
sdk: flutter
animated_menu_button: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get
来安装依赖。
基本使用
下面是一个简单的示例,展示了如何使用 animated_menu_button
插件:
import 'package:flutter/material.dart';
import 'package:animated_menu_button/animated_menu_button.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Animated Menu Button Example'),
),
body: Center(
child: AnimatedMenuButton(
items: [
MenuItem(
icon: Icons.home,
label: 'Home',
onTap: () {
print('Home tapped');
},
),
MenuItem(
icon: Icons.settings,
label: 'Settings',
onTap: () {
print('Settings tapped');
},
),
MenuItem(
icon: Icons.person,
label: 'Profile',
onTap: () {
print('Profile tapped');
},
),
],
child: Icon(Icons.menu),
),
),
),
);
}
}
参数说明
items
: 一个MenuItem
列表,每个MenuItem
包含一个图标、标签和点击事件。child
: 菜单按钮的图标或文本,通常是Icon(Icons.menu)
。animationDuration
: 动画的持续时间,默认为Duration(milliseconds: 300)
。animationCurve
: 动画的曲线,默认为Curves.easeInOut
。menuAlignment
: 菜单的展开方向,默认为MenuAlignment.bottom
。menuPadding
: 菜单的内边距,默认为EdgeInsets.all(8.0)
。menuBackgroundColor
: 菜单的背景颜色,默认为Colors.white
。menuElevation
: 菜单的阴影效果,默认为4.0
。
自定义样式
你可以通过调整 AnimatedMenuButton
的参数来自定义菜单的样式和动画效果。例如:
AnimatedMenuButton(
items: [
MenuItem(
icon: Icons.home,
label: 'Home',
onTap: () {
print('Home tapped');
},
),
MenuItem(
icon: Icons.settings,
label: 'Settings',
onTap: () {
print('Settings tapped');
},
),
],
child: Icon(Icons.menu),
animationDuration: Duration(milliseconds: 500),
animationCurve: Curves.bounceOut,
menuAlignment: MenuAlignment.top,
menuPadding: EdgeInsets.all(16.0),
menuBackgroundColor: Colors.blue,
menuElevation: 8.0,
);