Flutter启动动画插件flutter_animated_splash的使用
Flutter启动动画插件flutter_animated_splash
的使用
Getting started 🚀
flutter_animated_splash
是一个用于Flutter的启动动画API,可以程序化地显示和隐藏带有过渡效果的启动屏幕。
Platform Support
支持多平台,包括:
- Android
- iOS
- Windows
- Mac
- Linux
- Chrome OS
- Web
Features ⛏
- 新的过渡动画
- 新的曲线动画
- 多平台支持
- 易于使用
Installation
1. Depend on it
在你的 pubspec.yaml
文件中添加依赖:
dependencies:
flutter_animated_splash: ^0.0.10
2. Install it
你可以从命令行安装包:
$ flutter pub add flutter_animated_splash
Usage 🎨
Import
现在在你的Dart代码中可以这样导入:
import 'package:flutter_animated_splash/flutter_animated_splash.dart';
Example_1
使用文本小部件的启动屏幕:
AnimatedSplash(
type: Transition.fade,
child: Text("Your Splash"),
curve: Curves.fastLinearToSlowEase,
background: Colors.white,
navigator: const Home(),
durationInSeconds: 3
)
Example_2
使用图标小部件的启动屏幕:
AnimatedSplash(
type: Transition.size,
child: Icon(
Icons.audiotrack,
color: Colors.green,
size: 30.0,
),
curve: Curves.fastLinearToSlowEase,
background: Colors.white,
navigator: const Home(),
durationInSeconds: 3
)
Example_3
使用图片小部件的启动屏幕:
AnimatedSplash(
type: Transition.slide,
child: Image(
image: NetworkImage('https://flutter.github.io/assets-for-api-docs/assets/widgets/owl.jpg'),
),
curve: Curves.fastLinearToSlowEase,
background: Colors.white,
navigator: const Home(),
durationInSeconds: 3
)
完整示例 Demo
以下是一个完整的示例应用,展示了如何使用 flutter_animated_splash
插件:
import 'package:flutter/material.dart';
import 'package:flutter_animated_splash/flutter_animated_splash.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Animated Splash Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: SplashScreen(),
);
}
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Screen'),
),
body: Center(
child: Text('Welcome to the Home Screen!'),
),
);
}
}
class SplashScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return AnimatedSplash(
type: Transition.fade,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
"Welcome",
style: TextStyle(fontSize: 24, color: Colors.black),
),
SizedBox(height: 20),
CircularProgressIndicator(),
],
),
),
curve: Curves.fastLinearToSlowEase,
background: Colors.white,
navigator: Home(),
durationInSeconds: 3,
);
}
}
Page Transition Animation Types
以下是可用的过渡类型及其用法:
动画过渡类型 | 使用方法 |
---|---|
fade | type: Transition.fade |
rightToLeft | type: Transition.rightToLeft |
leftToRight | type: Transition.leftToRight |
topToBottom | type: Transition.topToBottom |
bottomToTop | type: Transition.bottomToTop |
scale | type: Transition.scale |
size | type: Transition.size |
leftToRightWithFade | type: Transition.leftToRightWithFade |
elasticOut | type: Transition.elasticOut |
fastOutSlowIn | type: Transition.fastOutSlowIn |
slide | type: Transition.slide |
Page Curve Animation
不同的曲线动画也可以应用于过渡效果,例如:
curve: Curves.bounceIn
或
curve: Curves.decelerate
更多关于Flutter启动动画插件flutter_animated_splash的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter启动动画插件flutter_animated_splash的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,下面是一个关于如何在Flutter项目中使用flutter_animated_splash
插件来实现启动动画的示例代码。
首先,你需要在你的pubspec.yaml
文件中添加flutter_animated_splash
依赖:
dependencies:
flutter:
sdk: flutter
flutter_animated_splash: ^1.3.0 # 请使用最新版本号
然后运行flutter pub get
来安装依赖。
接下来,你需要在你的main.dart
文件中配置启动动画。以下是一个完整的示例:
import 'package:flutter/material.dart';
import 'package:flutter_animated_splash/flutter_animated_splash.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: AnimatedSplash(
image: Image.asset(
'assets/splash.png', // 请将此处替换为你的启动图片路径
fit: BoxFit.cover,
),
animationDuration: 2000, // 动画持续时间,单位为毫秒
home: HomeScreen(), // 动画结束后显示的页面
splashProgress: (progress) {
// 可选:你可以在这里根据进度显示加载进度
return Center(
child: CircularProgressIndicator(
value: progress,
),
);
},
backgroundColor: Colors.white, // 背景颜色
// 如果你需要显示一个加载文本,可以使用loadingText属性
loadingText: Text(
'Loading...',
style: TextStyle(fontSize: 20),
),
),
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home Screen'),
),
body: Center(
child: Text('Welcome to the Home Screen!'),
),
);
}
}
在这个示例中,我们做了以下事情:
- 在
pubspec.yaml
中添加了flutter_animated_splash
依赖。 - 在
main.dart
中,使用AnimatedSplash
小部件来配置启动动画。image
属性用于设置启动图片。animationDuration
属性用于设置动画持续时间。home
属性用于设置动画结束后显示的页面。splashProgress
是一个可选属性,用于显示加载进度。backgroundColor
属性用于设置背景颜色。loadingText
是一个可选属性,用于显示加载文本。
确保你的启动图片(例如splash.png
)已经放在assets
文件夹中,并且在pubspec.yaml
中声明了这个资源:
flutter:
assets:
- assets/splash.png
这个示例展示了如何使用flutter_animated_splash
插件来实现一个简单的启动动画。你可以根据自己的需求进一步自定义动画效果。