// Copyright 2014 The Flutter Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. /// Flutter code sample for [AnimatedSize]. import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({super.key}); static const String _title = 'Flutter Code Sample'; @override Widget build(BuildContext context) { return MaterialApp( title: _title, home: Scaffold( appBar: AppBar(title: const Text(_title)), body: const Center( child: MyStatefulWidget(), ), ), ); } } class MyStatefulWidget extends StatefulWidget { const MyStatefulWidget({super.key}); @override State<MyStatefulWidget> createState() => _MyStatefulWidgetState(); } class _MyStatefulWidgetState extends State<MyStatefulWidget> { double _size = 50.0; bool _large = false; void _updateSize() { setState(() { _size = _large ? 250.0 : 100.0; _large = !_large; }); } @override Widget build(BuildContext context) { return GestureDetector( onTap: () => _updateSize(), child: Container( color: Colors.amberAccent, child: AnimatedSize( curve: Curves.easeIn, duration: const Duration(seconds: 1), child: FlutterLogo(size: _size), ), ), ); } }