Flutter Widget 之AnimatedPadding

767 阅读1分钟

Padding widget是在widget和屏幕边框之间提供缓冲区和空格的好方法。

但是,如果您向动态更改widget的padding,并让它在两个padding之间设置动画,改怎么办呢?

好吧,AnimatedPadding widget非常适合您。

首先,使用AnimatedPadding包装要填充dget。

给padding插入一个double类型的变量,并且当它的值改变时,您将使用它来触发它。

接下来,提供动画的持续时间,该持续时间决定了padding动画的更改速度。

最后,您可以指定动画的曲线,以实现不同的动画效果。

double padValue = 0;

AnimatedPadding(
    padding: EdgeInsets.all(padValue),
    duration: const Duration(second: 1),
    curve: Curves.easeInOut,
    child: Container(
        color: Colors.blue,
    ),
)

现在,只要padding变量发生变化,padding就会生成动画。

尝试使用StatefulWidget来控制padding 的值。

class PaddingState extedns State<...> {
    double padValue = 0l

    _updatePadding(double value) => 
        setState(() => padValue = value;);

    @override
    Widget build(BuildContext context) {
        return AnimatedPadding(
            padding: EdgeInsets.all(padValue),
            ...
        );
    }
}

如果想了解有关AnimatedPadding的内容,或者关于Flutter的其他功能,请访问flutter.dev

原文翻译自视频:视频地址