Flutter SliverAnimatedOpacity 透明渐变动画效果

志在巅峰的攀登者,不会陶醉在沿途的某个脚印之中,在码农的世界里,优美的应用体验,来源于程序员对细节的处理以及自我要求的境界,年轻人也是忙忙碌碌的码农中一员,每天、每周,都会留下一些脚印,就是这些创作的内容,有一种执着,就是不知为什么,如果你迷茫,不妨来瞅瞅码农的轨迹。

SliverAnimatedOpacity 是一个轻量级的实现渐变动画效果的组件,是在 CustomScrollView 中使用的组件
本文章实现的效果是
在这里插入图片描述

  const SliverAnimatedOpacity({
    Key? key,
    this.sliver,
    required this.opacity,
    Curve curve = Curves.linear,
    required Duration duration,
    VoidCallback? onEnd,
    this.alwaysIncludeSemantics = false,
  }) 
  • sliver 子Widget ,要求 Sliver家族的组件
  • opacity 透明度 ,从 0.0 ~ 1.0 ,变化时,子 Widget 动态效果
  • curver 动画曲线
  • duration 动画的时间
  • onEnd 动画执行完成回调的方法

使用 Demo 如下

class DemoAnimatedOpacity extends StatefulWidget {
  @override
  _DemoAnimatedOpacityState createState() => _DemoAnimatedOpacityState();
}

class _DemoAnimatedOpacityState extends State<DemoAnimatedOpacity> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text("这里是首页")),
      body: CustomScrollView(
        slivers: [
          SliverAnimatedOpacity(
            //动画执行完毕
            onEnd: () {},
            //动画曲线
            curve: Curves.fastOutSlowIn,
            //透明度
            opacity: 1.0,
            //动画时间
            duration: Duration(seconds: 2),
            //子 Widet
            sliver: SliverFixedExtentList(
                delegate: SliverChildBuilderDelegate(
                    (BuildContext context, int index) {
                  return Container(
                    color: index % 2 == 0
                        ? Colors.deepOrange[200]
                        : Colors.deepOrange[400],
                    child: Text("早起的年轻人"),
                  );
                }),
                itemExtent: 100.0),
          )
        ],
      ),
    );
  }
}

如果你有兴趣 你可以关注一下公众号 biglead 来获取最新的学习资料。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早起的年轻人

创作源于分享

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值