AnimatedSwitcher Widget Example in Flutter

This Article is posted by seven.srikanth at 11/20/2019 11:40:38 PM



In this post, I'm going to share you an example on AnimatedSwitcher Widget in Flutter.

By using AnimatedSwitcher, we would be able to switch between widgets as below. 


You can also animate the transition style. For example, you can add ScaleTransition or RotateTransition and the outcome looks as below.


Here is the code from main.dart file to try this example.

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  Widget _myAnimatedWidget = FirstWidget();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Material(
        child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: <Widget>[
              AnimatedSwitcher(
                duration: const Duration(seconds: 1),
                //Enable this for ScaleTransition
                transitionBuilder: (Widget child, Animation<double> animation) {
                    return ScaleTransition(child: child, scale: animation,);
                  },
                //Enable this for RotationTransition
                // transitionBuilder: (Widget child, Animation<double> animation) {
                //   return RotationTransition(
                //     child: child,
                //     turns: animation,
                //   );
                // },
                child: _myAnimatedWidget,
              ),
              RaisedButton(
                child: Text('Click here'),
                onPressed: () {
                  setState(() {
                    _myAnimatedWidget =
                        (_myAnimatedWidget.toString() == "FirstWidget")
                            ? SecondWidget()
                            : FirstWidget();
                  });
                },
              )
            ]),
      ),
    );
  }
}

class FirstWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: 200.0,
      height: 200.0,
      child: Center(child: Text("This is First Widget")),
      decoration: BoxDecoration(
        color: Colors.orange,
      ),
    );
  }
}

class SecondWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: 200.0,
      height: 200.0,
      child: Center(child: Text("This is Second Widget")),
      decoration: BoxDecoration(
        color: Colors.green,
      ),
    );
  }
}


Thanks,
Srikanth

Tags: Switch between Widgets; Animate while Switching between Widgets;








0 Comments
Login to comment.
Recent Comments












© 2018 - Fluttercentral | Email to me - seven.srikanth@gmail.com