flutter 打开应用的闪屏动画
2024-08-26 11:30:06
import 'package:flutter/material.dart';
import 'package:flutter_app/pages/SplashScreen.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.green, //定义主题风格 primarySwatch
),
home: SplashScreen(),
);
} }
import 'package:flutter/material.dart'; import '../MyHomePage.dart'; class SplashScreen extends StatefulWidget {
_SplashScreenState createState() => _SplashScreenState();
} class _SplashScreenState extends State<SplashScreen> with SingleTickerProviderStateMixin { AnimationController _controller;
Animation _animation; void initState() {
super.initState();
_controller = AnimationController(vsync:this,duration:Duration(milliseconds:3000));
_animation = Tween(begin: 0.0,end:1.0).animate(_controller); /*动画事件监听器,
它可以监听到动画的执行状态,
我们这里只监听动画是否结束,
如果结束则执行页面跳转动作。 */
_animation.addStatusListener((status){
if(status == AnimationStatus.completed){
Navigator.of(context).pushAndRemoveUntil(
MaterialPageRoute(builder: (context)=>MyHomePage()),
(route)=> route==null);
}
});
//播放动画
_controller.forward();
} @override
void dispose() {
_controller.dispose();
super.dispose();
} @override
Widget build(BuildContext context) {
return FadeTransition( //透明度动画组件
opacity: _animation, //执行动画
child: Image.network( //网络图片
'https://timgsa.baidu.com/timg?image&quality=80&size=b9999_10000&sec=1546851657199&di=fdd278c2029f7826790191d59279dbbe&imgtype=0&src=http%3A%2F%2Fimg.zcool.cn%2Fcommunity%2F0112cb554438090000019ae93094f1.jpg%401280w_1l_2o_100sh.jpg',
scale: 2.0, //进行缩放
fit:BoxFit.cover // 充满父容器
),
);
}
}
最新文章
- 机器学习——利用K-均值聚类算法对未标注数据分组
- 如何使用CSS绘制一个响应式的矩形
- 链接rel属性external、nofollow、external nofollow三种写法的区别
- mysql备份文件注释乱码处理工具
- (转)利用eclipse external tool 执行mvn jetty:run
- c#...的类型初始值设定项引发异常。
- 解决android 启动白屏问题
- Reactor模式与Proactor模式
- Xamarin Anroid开发教程之Anroid开发工具及应用介绍
- java解析XML几种方式
- (转+原)android获取系统时间
- RH133读书笔记(7)-Lab 7 Advanced Filesystem Mangement
- JQuery EasyUI DataGrid 获取属性值
- 关于 Eclipse中的Web项目 部署的文件位置 查看jsp源码的部署位置
- [smartMenu.js] 一个基于jquery的实用的右键拓展菜单栏插件
- 【java】文件复制的简单实现
- Django框架初识
- ES6躬行记(1)——let和const
- Nuget 打包
- 【Java基础】7、Java同步机制之Monitor监视器与syncrhoized实现原理
热门文章
- jmeter + ant + jenkins 自动化集成环境搭建
- linux系统编程综合练习-实现一个小型的shell程序(一)
- 项目(二)--完成练手feed流网站开发部署
- DevExpress20:XtraCharts控件实现图表
- Mysql 查询当天、昨天、近7天、一周内、本月、上一月等的数据(函数执行日期的算术运算)
- zookeeper的补充
- C# Dictionary使用
- RookeyFrame 还原 软删除的数据 怎么硬删除 或者 怎么还原
- Cogs 2546. 取石块儿(博弈)
- 45、sparkSQL UDF&;UDAF