Created
November 26, 2019 15:11
-
-
Save brianegan/3053b99b35bb98214c962ad931f9d039 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import 'dart:math'; | |
| import 'package:flutter/material.dart'; | |
| void main() => runApp(AnimatedContainerApp()); | |
| class AnimatedContainerApp extends StatefulWidget { | |
| @override | |
| _AnimatedContainerAppState createState() => _AnimatedContainerAppState(); | |
| } | |
| class _AnimatedContainerAppState extends State<AnimatedContainerApp> { | |
| // Define the various properties with default values. Update these properties | |
| // when the user taps a FloatingActionButton. | |
| double _width = 50; | |
| double _height = 50; | |
| Color _color = Colors.green; | |
| BorderRadiusGeometry _borderRadius = BorderRadius.circular(8); | |
| @override | |
| Widget build(BuildContext context) { | |
| return MaterialApp( | |
| home: Scaffold( | |
| appBar: AppBar( | |
| title: Text('AnimatedContainer Demo'), | |
| ), | |
| body: Center( | |
| child: AnimatedContainer( | |
| // Use the properties stored in the State class. | |
| width: _width, | |
| height: _height, | |
| decoration: BoxDecoration( | |
| color: _color, | |
| borderRadius: _borderRadius, | |
| ), | |
| // Define how long the animation should take. | |
| duration: Duration(seconds: 1), | |
| // Provide an optional curve to make the animation feel smoother. | |
| curve: Curves.fastOutSlowIn, | |
| ), | |
| ), | |
| floatingActionButton: FloatingActionButton( | |
| child: Icon(Icons.play_arrow), | |
| // When the user taps the button | |
| onPressed: () { | |
| // Use setState to rebuild the widget with new values. | |
| setState(() { | |
| // Create a random number generator. | |
| final random = Random(); | |
| // Generate a random width and height. | |
| _width = random.nextInt(300).toDouble(); | |
| _height = random.nextInt(300).toDouble(); | |
| // Generate a random color. | |
| _color = Color.fromRGBO( | |
| random.nextInt(256), | |
| random.nextInt(256), | |
| random.nextInt(256), | |
| 1, | |
| ); | |
| // Generate a random border radius. | |
| _borderRadius = | |
| BorderRadius.circular(random.nextInt(100).toDouble()); | |
| }); | |
| }, | |
| ), | |
| ), | |
| ); | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment