// 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. import 'package:flutter/material.dart'; /// Flutter code sample for [AnimatedAlign]. void main() => runApp(const AnimatedAlignExampleApp()); class AnimatedAlignExampleApp extends StatelessWidget { const AnimatedAlignExampleApp({super.key}); static const Duration duration = Duration(seconds: 1); static const Curve curve = Curves.fastOutSlowIn; @override Widget build(BuildContext context) { return MaterialApp( home: Scaffold( appBar: AppBar(title: const Text('AnimatedAlign Sample')), body: const AnimatedAlignExample( duration: duration, curve: curve, ), ), ); } } class AnimatedAlignExample extends StatefulWidget { const AnimatedAlignExample({ required this.duration, required this.curve, super.key, }); final Duration duration; final Curve curve; @override State createState() => _AnimatedAlignExampleState(); } class _AnimatedAlignExampleState extends State { 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: widget.duration, curve: widget.curve, child: const FlutterLogo(size: 50.0), ), ), ), ); } }