rustdesk/flutter/lib/common/widgets/animated_rotation_widget.dart
21pages 0bda66dd7f peer ab/group tab refresh, animated refresh icon
Signed-off-by: 21pages <pages21@163.com>
2023-06-21 12:11:41 +08:00

31 lines
865 B
Dart

import 'package:flutter/material.dart';
class AnimatedRotationWidget extends StatefulWidget {
final VoidCallback onPressed;
final ValueChanged<bool>? onHover;
final Widget child;
const AnimatedRotationWidget(
{super.key, required this.onPressed, required this.child, this.onHover});
@override
State<AnimatedRotationWidget> createState() => AnimatedRotationWidgetState();
}
class AnimatedRotationWidgetState extends State<AnimatedRotationWidget> {
double turns = 0.0;
@override
Widget build(BuildContext context) {
return AnimatedRotation(
turns: turns,
duration: const Duration(milliseconds: 200),
child: InkWell(
onTap: () {
setState(() => turns += 1.0);
widget.onPressed();
},
onHover: widget.onHover,
child: widget.child));
}
}