Flutter启动页插件miladtech_splashscreen的使用
Flutter启动页插件miladtech_splashscreen的使用
MiladTech Splash Screen
一个用于任何Flutter应用程序的启动屏幕包,可以轻松使用并具有许多自定义选项。
目前由awesome MiladTech支持
MiladTech 是新一代的云平台,旨在通过开源贡献帮助开发人员,并最终表达感谢。
使用方法
示例代码
可以在以下链接找到示例代码:
示例代码
添加依赖
在pubspec.yaml
文件中添加依赖:
dependencies:
flutter:
sdk: flutter
miladtech_splashscreen:
如何使用
new SplashScreen.timer(
seconds: 14, // 设置启动屏持续时间为14秒
navigateAfterSeconds: new AfterSplash(), // 跳转到AfterSplash页面
title: new Text('欢迎进入SplashScreen'), // 启动屏标题
image: new Image.asset('screenshot.png'), // 启动屏图片
backgroundColor: Colors.white, // 启动屏背景颜色
styleTextUnderTheLoader: new TextStyle(), // 加载器下方文字样式
photoSize: 100.0, // 图片大小
loaderColor: Colors.red // 加载器颜色
);
示例代码
基于时间的示例
import 'package:flutter/material.dart';
import 'package:miladtech_splashscreen/splashscreen.dart';
void main() {
runApp(MaterialApp(home: MyApp()));
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return SplashScreen.timer(
seconds: 14, // 启动屏持续时间为14秒
navigateAfterSeconds: AfterSplash(), // 跳转到AfterSplash页面
title: Text(
'欢迎进入SplashScreen', // 启动屏标题
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0),
),
image: Image.network( // 启动屏图片
'https://flutter.io/images/catalog-widget-placeholder.png',
),
backgroundColor: Colors.white, // 启动屏背景颜色
loaderColor: Colors.red, // 加载器颜色
);
}
}
class AfterSplash extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('欢迎进入SplashScreen包'), // 主页面标题
automaticallyImplyLeading: false,
),
body: Center(
child: Text(
'成功!', // 成功提示文本
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 30.0),
),
),
);
}
}
基于未来的示例
import 'package:flutter/material.dart';
import 'package:miladtech_splashscreen/splashscreen.dart';
void main() {
runApp(MaterialApp(home: MyApp()));
}
Future<Widget> loadFromFuture() async {
// 模拟从服务器获取数据(如登录)
return AfterSplash();
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return SplashScreen.future(
navigateAfterFuture: loadFromFuture(), // 等待异步任务完成后再跳转
navigateAfterSeconds: AfterSplash(), // 默认跳转页面
title: Text(
'欢迎进入SplashScreen', // 启动屏标题
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0),
),
image: Image.network( // 启动屏图片
'https://flutter.io/images/catalog-widget-placeholder.png',
),
backgroundColor: Colors.white, // 启动屏背景颜色
loaderColor: Colors.red, // 加载器颜色
);
}
}
class AfterSplash extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('欢迎进入SplashScreen包'), // 主页面标题
automaticallyImplyLeading: false,
),
body: Center(
child: Text(
'成功!', // 成功提示文本
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 30.0),
),
),
);
}
}
使用Hero动画实现主图过渡
主图具有标签splashscreenImage
。将其附加到导航到的任何页面上,这样会将主图动画到另一个页面上的相同图像。
添加自定义页面过渡
可以通过pageRoute
来实现自定义页面过渡。例如:
import 'package:flutter/material.dart';
import 'package:miladtech_splashscreen/splashscreen.dart';
void main() {
runApp(MaterialApp(home: MyApp()));
}
Route _createRoute() {
return PageRouteBuilder(
pageBuilder: (context, animation, secondaryAnimation) => AfterSplash(),
transitionsBuilder: (context, animation, secondaryAnimation, child) {
var begin = Offset(0.0, 1.0); // 初始位置
var end = Offset.zero; // 结束位置
var curve = Curves.ease; // 动画曲线
var tween = Tween(begin: begin, end: end).chain(CurveTween(curve: curve));
return SlideTransition( // 滑动过渡
position: animation.drive(tween),
child: child,
);
},
);
}
class MyApp extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return SplashScreen.timer(
seconds: 14, // 启动屏持续时间为14秒
navigateAfterSeconds: AfterSplash(), // 跳转到AfterSplash页面
title: Text(
'欢迎进入SplashScreen', // 启动屏标题
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0),
),
image: Image.network( // 启动屏图片
'https://flutter.io/images/catalog-widget-placeholder.png',
),
backgroundColor: Colors.white, // 启动屏背景颜色
loaderColor: Colors.red, // 加载器颜色
pageRoute: _createRoute(), // 自定义页面过渡
);
}
}
class AfterSplash extends StatelessWidget {
[@override](/user/override)
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('欢迎进入SplashScreen包'), // 主页面标题
automaticallyImplyLeading: false,
),
body: Center(
child: Text(
'成功!', // 成功提示文本
style: TextStyle(fontWeight: FontWeight.bold, fontSize: 30.0),
),
),
);
}
}
更多关于Flutter启动页插件miladtech_splashscreen的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
miladtech_splashscreen
是一个用于在 Flutter 应用中创建启动页(Splash Screen)的插件。它允许你自定义启动页的样式、持续时间以及启动页结束后跳转到的页面。以下是如何使用 miladtech_splashscreen
插件的详细步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 miladtech_splashscreen
插件的依赖:
dependencies:
flutter:
sdk: flutter
miladtech_splashscreen: ^1.0.0 # 请检查最新版本
然后运行 flutter pub get
来安装依赖。
2. 导入插件
在你的 Dart 文件中导入 miladtech_splashscreen
插件:
import 'package:miladtech_splashscreen/miladtech_splashscreen.dart';
3. 使用 SplashScreen
你可以在 main.dart
文件中使用 SplashScreen
来创建启动页。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:miladtech_splashscreen/miladtech_splashscreen.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Splash Screen',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: SplashScreen(
seconds: 3, // 启动页持续时间,单位为秒
navigateAfterSeconds: HomeScreen(), // 启动页结束后跳转的页面
title: Text(
'Welcome to Flutter',
style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold),
),
image: Image.asset('assets/splash.png'), // 启动页图片
backgroundColor: Colors.white, // 启动页背景颜色
styleTextUnderTheLoader: TextStyle(), // 加载器下方文本的样式
photoSize: 100.0, // 图片大小
loaderColor: Colors.blue, // 加载器颜色
),
);
}
}
class HomeScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Home'),
),
body: Center(
child: Text('Welcome to the Home Screen!'),
),
);
}
}
4. 配置启动页图片
在上面的示例中,image: Image.asset('assets/splash.png')
用于设置启动页的图片。你需要将图片文件放在 assets
文件夹中,并在 pubspec.yaml
文件中配置:
flutter:
assets:
- assets/splash.png