// 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 AnimatedAlign import 'package:flutter/material.dart'; void main() => runApp(const MyApp()); class MyApp extends StatelessWidget { const MyApp({Key? key}) : super(key: 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 MyStatefulWidget(), ), ); } } class MyStatefulWidget extends StatefulWidget { const MyStatefulWidget({Key? key}) : super(key: key); @override State<MyStatefulWidget> createState() => _MyStatefulWidgetState(); } class _MyStatefulWidgetState extends State<MyStatefulWidget> { bool selected = false; @override Widget build(BuildContext context) { return GestureDetector( onTap: () { setState(() { selected = !selected; }); }, child: Center( child: Container( width: 250.0, height: 250.0, color: Colors.red, child: AnimatedAlign( alignment: selected ? Alignment.topRight : Alignment.bottomLeft, duration: const Duration(seconds: 1), curve: Curves.fastOutSlowIn, child: const FlutterLogo(size: 50.0), ), ), ), ); } }