cull_opacity.dart 1.19 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import 'package:flutter/material.dart';

class CullOpacityPage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() => _CullOpacityPageState();
}

class _CullOpacityPageState extends State<CullOpacityPage> with SingleTickerProviderStateMixin {
  Animation<double> _offsetY;
  AnimationController _controller;

  @override
  void initState() {
    super.initState();

16
    _controller = AnimationController(vsync: this, duration: const Duration(seconds: 2));
17 18 19 20 21 22
    _offsetY = Tween<double>(begin: 0, end: -1000.0).animate(_controller)..addListener((){
      setState(() {});
    });
    _controller.repeat();
  }

23 24 25 26 27 28
  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
  @override
  Widget build(BuildContext context) {
    return Stack(children: List<Widget>.generate(50, (int i) => Positioned(
      left: 0,
      top: (200 * i).toDouble() + _offsetY.value,
      child: Opacity(
        opacity: 0.5,
        child: RepaintBoundary(
          child: Container(
            // Slightly change width to invalidate raster cache.
            width: 1000 - (_offsetY.value / 100),
            height: 100, color: Colors.red,
          ),
        ),
      ),
    )));
  }
}