spinning_square.dart 1.24 KB
Newer Older
1 2 3 4 5 6
// Copyright 2015 The Chromium 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/widgets.dart';

7
class SpinningSquare extends StatefulWidget {
8
  @override
9 10 11 12 13 14
  _SpinningSquareState createState() => new _SpinningSquareState();
}

class _SpinningSquareState extends State<SpinningSquare> {
  AnimationController _animation;

15
  @override
16 17 18 19 20 21 22 23 24 25
  void initState() {
    super.initState();
    // We use 3600 milliseconds instead of 1800 milliseconds because 0.0 -> 1.0
    // represents an entire turn of the square whereas in the other examples
    // we used 0.0 -> math.PI, which is only half a turn.
    _animation = new AnimationController(
      duration: const Duration(milliseconds: 3600)
    )..repeat();
  }

26 27 28 29 30 31
  @override
  void dispose() {
    _animation.dispose();
    super.dispose();
  }

32
  @override
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
  Widget build(BuildContext context) {
    return new RotationTransition(
      turns: _animation,
      child: new Container(
        width: 200.0,
        height: 200.0,
        decoration: const BoxDecoration(
          backgroundColor: const Color(0xFF00FF00)
        )
      )
    );
  }
}

void main() {
  runApp(new Center(child: new SpinningSquare()));
}