添加 Material 点击涟漪效果
遵循 Material Design 指南的小部件在点击时会显示涟漪动画。
Flutter 提供了 InkWell
小部件来实现此效果。 使用以下步骤创建涟漪效果:
- 创建一个支持点击的小部件。
- 使用
InkWell
小部件将其包装起来,以管理点击回调和涟漪动画。
dart
// InkWell 包装了自定义扁平按钮小部件。
InkWell(
// 当用户点击按钮时,显示一个 SnackBar。
onTap: () {
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Tap'),
));
},
child: const Padding(
padding: EdgeInsets.all(12),
child: Text('Flat Button'),
),
)
交互式示例
#import 'package:flutter/material.dart';
void main() => runApp(const MyApp());
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
const title = 'InkWell Demo';
return const MaterialApp(
title: title,
home: MyHomePage(title: title),
);
}
}
class MyHomePage extends StatelessWidget {
final String title;
const MyHomePage({super.key, required this.title});
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(title),
),
body: const Center(
child: MyButton(),
),
);
}
}
class MyButton extends StatelessWidget {
const MyButton({super.key});
@override
Widget build(BuildContext context) {
// InkWell 包装了自定义扁平按钮小部件。
return InkWell(
// 当用户点击按钮时,显示一个 SnackBar。
onTap: () {
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Tap'),
));
},
child: const Padding(
padding: EdgeInsets.all(12),
child: Text('Flat Button'),
),
);
}
}
除非另有说明,否则本网站上的文档反映的是 Flutter 的最新稳定版本。页面最后更新于 2025-01-30。 查看源代码 或 报告问题。