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),
        ),
      ),
    );
  }
}
1 回复

更多关于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
回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!