AnimatedIcon Widget
Project Preview
- Interested in seeing the live demo? Click here to explore.
- Want to view the source code? Visit the project on GitHub.
Code Snippet
import 'package:flutter/material.dart';
class AnimatedIconWidget extends StatefulWidget {
const AnimatedIconWidget({super.key});
@override
State<AnimatedIconWidget> createState() => _AnimatedIconWidgetState();
}
class _AnimatedIconWidgetState extends State<AnimatedIconWidget>
with TickerProviderStateMixin {
bool _isPlay = false;
late AnimationController _controller;
@override
void initState() {
_controller = AnimationController(
duration: const Duration(seconds: 1),
vsync: this,
);
super.initState();
}
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text("AnimatedIcon Widget"),
),
body: Center(
child: GestureDetector(
onTap: () {
if (_isPlay == false) {
_controller.forward(); // Next Icon
_isPlay = true;
} else {
_controller.reverse(); // Previous Icon
_isPlay = false;
}
},
child: AnimatedIcon(
icon: AnimatedIcons.play_pause,
progress: _controller,
size: 100,
),
),
),
);
}
}