Flutter可扩展浮动操作按钮插件full_expandable_fab的使用
Flutter可扩展浮动操作按钮插件full_expandable_fab的使用
全展开浮动操作按钮 (Full Expandable FAB)
一个用于展示带有动画效果的浮动操作按钮的组件,该按钮可以展开成一个模态窗口。
安装
在你的 pubspec.yaml
文件中添加 full_expandable_fab
依赖:
dependencies:
flutter:
sdk: flutter
full_expandable_fab: version
API 参考
属性 (Props)
名称 | 类型 | 描述 |
---|---|---|
child | Widget | 必填。要包裹的子组件。建议使用 Scaffold 。 |
innerChild | Widget | 必填。要在展开的模态窗口中显示的组件。 |
icon | Icon | 必填。初始浮动按钮上使用的图标。 |
closeIconColor | Color | 关闭图标颜色,默认为白色。 |
buttonBackgroundColor | Color | 浮动操作按钮的背景颜色,默认为主题的主要颜色。 |
backgroundColor | Color | 展开模态窗口的背景颜色,默认为半透明黑色(Color.fromRGBO(0, 0, 0, 0.5) )。 |
duration | Duration | 动画持续时间,默认为250毫秒。 |
示例
以下是一个完整的示例代码,展示了如何使用 full_expandable_fab
插件:
import 'package:flutter/material.dart';
import 'package:full_expandable_fab/full_expandable_fab.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Hello World',
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatelessWidget {
final String title;
final GlobalKey<ExpandableFabState> keyFab = GlobalKey<ExpandableFabState>();
MyHomePage({Key? key, required this.title}) : super(key: key);
[@override](/user/override)
Widget build(BuildContext context) {
return ExpandableFab(
key: keyFab,
backgroundColor: Colors.white,
closeIconColor: Colors.black,
duration: const Duration(milliseconds: 500),
innerChild: Column(
children: [
const Text('Inner widget'),
const TextField(),
ElevatedButton(
onPressed: () {
keyFab.currentState?.close();
},
child: const Text('Close me')
)
],
),
icon: const Icon(Icons.plus_one, color: Colors.white,),
child: Scaffold(
appBar: AppBar(
title: Text(title),
),
body: const Center(
child: Text(
'Hello, World!',
),
),
),
);
}
}
更多关于Flutter可扩展浮动操作按钮插件full_expandable_fab的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
1 回复
更多关于Flutter可扩展浮动操作按钮插件full_expandable_fab的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何使用 full_expandable_fab
插件的 Flutter 代码示例。full_expandable_fab
是一个用于实现可扩展浮动操作按钮(FAB)的 Flutter 插件。这个插件允许你创建一个主 FAB,并在点击时展开显示多个子按钮。
首先,你需要在你的 pubspec.yaml
文件中添加 full_expandable_fab
依赖:
dependencies:
flutter:
sdk: flutter
full_expandable_fab: ^x.y.z # 替换为最新版本号
然后运行 flutter pub get
来获取依赖。
接下来是一个完整的 Flutter 应用示例,展示了如何使用 full_expandable_fab
:
import 'package:flutter/material.dart';
import 'package:full_expandable_fab/full_expandable_fab.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Full Expandable FAB Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('Full Expandable FAB Demo'),
),
body: Center(
child: Text('Click the FAB to expand it!'),
),
floatingActionButton: ExpandableFab(
// 主按钮的图标
icon: Icons.add,
// 主按钮的背景颜色
backgroundColor: Colors.blue,
// 主按钮点击时的回调
onPressed: () {},
// 子按钮列表
actions: [
ExpandableFabAction(
iconData: Icons.star,
label: 'Favorite',
onPressed: () {
// 子按钮点击时的回调
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Favorite pressed')),
);
},
),
ExpandableFabAction(
iconData: Icons.share,
label: 'Share',
onPressed: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Share pressed')),
);
},
),
ExpandableFabAction(
iconData: Icons.delete,
label: 'Delete',
onPressed: () {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(content: Text('Delete pressed')),
);
},
),
],
// 子按钮的背景颜色
actionBackgroundColor: Colors.grey[300]!,
// 子按钮图标的颜色
actionIconColor: Colors.black,
// 子按钮标签的颜色
actionLabelColor: Colors.black,
),
),
);
}
}
在这个示例中:
- 我们创建了一个简单的 Flutter 应用,包含一个主屏幕。
- 使用
Scaffold
小部件来定义应用的主体和浮动操作按钮。 ExpandableFab
小部件用于创建可扩展的 FAB。actions
属性是一个ExpandableFabAction
小部件的列表,每个小部件代表一个子按钮。- 每个子按钮都有一个图标、标签和一个点击回调。
你可以根据需要自定义图标、标签、颜色和其他属性。运行这个示例应用,点击主 FAB,你将看到它展开显示多个子按钮。