Flutter SliverAnimatedOpacity 透明渐变动画效果
Posted 早起的年轻人
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 来获取最新的学习资料。
以上是关于Flutter SliverAnimatedOpacity 透明渐变动画效果的主要内容,如果未能解决你的问题,请参考以下文章
[Flutter] flutter项目一直卡在 Running Gradle task 'assembleDebug'...
flutter 日志输出,Flutter打印日志,flutter log,flutter 真机日志
Flutter开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )
如何解决flutter gradle build error?C:\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 991