flutter 随机属性动画

class AnimatedContainPage extends StatefulWidget {
  const AnimatedContainPage({Key? key}) : super(key: key);

  @override
  State<AnimatedContainPage> createState() => _AnimatedContainPageState();
}

class _AnimatedContainPageState extends State<AnimatedContainPage> {
  double _width = 50;
  double _height = 50;
  Color _color = Colors.green;
  BorderRadiusGeometry _borderRadius = BorderRadius.circular(8);

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: AnimatedContainer(
          duration: Duration(seconds: 1),
          width: _width,
          height: _height,
          decoration: BoxDecoration(color: _color, borderRadius: _borderRadius),
          curve: Curves.fastOutSlowIn,
        ),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {
          final random = Random();

          _width = random.nextInt(300).toDouble();
          _height = random.nextInt(300).toDouble();

          _color = Color.fromRGBO(
              random.nextInt(256), random.nextInt(256), random.nextInt(256), 1);

          _borderRadius = BorderRadius.circular(random.nextInt(100).toDouble());
          setState(() {});
        },
        child: Icon(Icons.play_arrow),
      ),
    );
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值