📅  最后修改于: 2023-12-03 14:51:33.622000             🧑  作者: Mango
本文将介绍如何在 Dart 编程语言中创建一个简单的警报对话框,并在其中添加一个颤动的单选按钮。
在 pubspec.yaml
文件中添加 flutter/material.dart
依赖库:
dependencies:
flutter:
sdk: flutter
flutter/material.dart
然后运行 flutter packages get
命令获取依赖。
在 Dart 文件中创建一个 StatefulWidget 类,并实现一个 RaisedButton,点击按钮后显示警报对话框。
import 'package:flutter/material.dart';
class AlertWithShakingRadioButton extends StatefulWidget {
@override
_AlertWithShakingRadioButtonState createState() => _AlertWithShakingRadioButtonState();
}
class _AlertWithShakingRadioButtonState extends State<AlertWithShakingRadioButton> {
@override
Widget build(BuildContext context) {
return RaisedButton(
onPressed: () {
showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('警报对话框'),
content: SingleChildScrollView(
child: Column(
children: <Widget>[
// 在这里添加颤动的单选按钮
ShakeableRadioButton(),
],
),
),
actions: <Widget>[
FlatButton(
child: Text('关闭'),
onPressed: () {
Navigator.of(context).pop();
},
),
],
);
},
);
},
child: Text('显示警报对话框'),
);
}
}
为了实现一个颤动的单选按钮,我们将创建一个 StatefulWidget 类。它包含一个 RadioListTile,通过动画来使其颤动。
import 'package:flutter/material.dart';
class ShakeableRadioButton extends StatefulWidget {
@override
_ShakeableRadioButtonState createState() => _ShakeableRadioButtonState();
}
class _ShakeableRadioButtonState extends State<ShakeableRadioButton>
with SingleTickerProviderStateMixin {
late AnimationController _animationController;
late Animation<double> _animation;
@override
void initState() {
super.initState();
_animationController = AnimationController(
vsync: this,
duration: Duration(milliseconds: 500),
)..repeat(reverse: true);
_animation = Tween<double>(begin: 0.0, end: 5.0).animate(
CurvedAnimation(
parent: _animationController,
curve: Curves.linear,
),
);
}
@override
void dispose() {
_animationController.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Container(
child: AnimatedBuilder(
animation: _animation,
builder: (BuildContext context, Widget? child) {
return Transform.translate(
offset: Offset(_animation.value, 0.0),
child: RadioListTile(
value: false,
groupValue: false,
onChanged: (bool? value) {},
title: Text('选项'),
),
);
},
),
);
}
}
在你的组件中使用 AlertWithShakingRadioButton
来显示警报对话框和颤动的单选按钮。
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: '颤动单选按钮',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: Scaffold(
appBar: AppBar(
title: Text('颤动单选按钮'),
),
body: Center(
child: AlertWithShakingRadioButton(),
),
),
);
}
}
通过运行上述代码,你将在你的应用程序中看到一个按钮。点击该按钮会显示一个警报对话框,该对话框中包含一个可以颤动的单选按钮。
注意:上述代码为 Dart 语言,并使用 Flutter 框架。若要运行此示例,请确保您的开发环境已安装 Flutter SDK。去 https://flutter.dev/ 下载并安装 Flutter SDK。
将以上代码保存为 main.dart
,然后通过运行 flutter run
命令来启动应用程序。