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
  _SpinningSquareState createState() => new _SpinningSquareState();
}

12
class _SpinningSquareState extends State<SpinningSquare> with SingleTickerProviderStateMixin {
13 14
  AnimationController _animation;

15
  @override
16 17 18 19
  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
20
    // we used 0.0 -> math.pi, which is only half a turn.
21
    _animation = new AnimationController(
22 23
      duration: const Duration(milliseconds: 3600),
      vsync: this,
24 25 26
    )..repeat();
  }

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

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

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