Untitled
unknown
dart
2 years ago
1.5 kB
7
Indexable
class _MyHomePageState extends State
   with SingleTickerProviderStateMixin {
 late AnimationController _controller;
 int counter = 0;
 void _onPressed() {
   setState(() {
     counter++;
   });
   _controller.forward(from: 0.0);
 }
 @override
 void initState() {
   _controller = AnimationController(
       vsync: this, duration: const Duration(milliseconds: 600));
   super.initState();
 }
 @override
 void dispose() {
   _controller.dispose();
   super.dispose();
 }
 @override
 Widget build(BuildContext context) {
   return Scaffold(
     floatingActionButton: FloatingActionButton(
       onPressed: _onPressed,
       splashColor: Colors.lightBlue.shade200,
       backgroundColor: Colors.blue,
       child: Icon(
         Icons.flip,
         color: Colors.white,
       ),
     ),
     body: AnimatedBuilder(
       animation: _controller,
       builder: (_, child) => Transform(
         alignment: Alignment.center,
         transform: Matrix4.identity()
           ..setEntry(3, 2, 0.001)
           ..rotateY(360 * _controller.value * (pi / 180.0)),
         child: LogoWidget(
           counter: counter,
         ),
       ),
     ),
   );
 }
}
class LogoWidget extends StatelessWidget {
 final int counter;
 const LogoWidget({Key? key, required this.counter}) : super(key: key);
 @override
 Widget build(BuildContext context) {
   print(' Rebuilding Widget');
   return Center(
     child: SizedBox(height: 100, width: 100, child: FlutterLogo()),
   );
 }
}Editor is loading...