Flutter启动画面插件dart_board_splash的使用

Flutter启动画面插件dart_board_splash的使用

dart_board_splash

dart_board_splash 是一个用于 Flutter 应用的启动画面模块。

使用说明

在使用 dart_board_splash 插件时,首先需要包含它的功能模块。通过 DartBoardSplashFeature 来引入启动画面功能,并传入一个 splashWidget

DartBoardSplashFeature(this.splashWidget)

splashWidget 应该是一个能够触发隐藏启动画面的部件。例如,通过调用 hideSplashScreen 方法来隐藏启动画面。

DartBoardCore.instance.dispatchMethodCall(
    context: context, call: MethodCall("hideSplashScreen"));

此外,插件还提供了一个内置的启动画面组件 FadeOutSplashScreen,它可以展示一段内容并逐渐淡出。

示例代码

以下是一个完整的示例代码,展示了如何使用 FadeOutSplashScreen 来实现一个简单的启动画面效果。

主文件代码

import 'package:flutter/material.dart';
import 'package:dart_board_splash/dart_board_splash.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SplashScreen(),
    );
  }
}

class SplashScreen extends StatefulWidget {
  [@override](/user/override)
  _SplashScreenState createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  [@override](/user/override)
  void initState() {
    super.initState();
    // 隐藏启动画面的延迟时间
    Future.delayed(Duration(seconds: 3), () {
      DartBoardCore.instance.dispatchMethodCall(
          context: context, call: MethodCall("hideSplashScreen"));
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(
              "欢迎使用!",
              style: TextStyle(fontSize: 24),
            ),
            SizedBox(height: 20),
            CircularProgressIndicator(), // 加载动画
          ],
        ),
      ),
    );
  }
}

FadeOutSplashScreen 的使用

如果希望使用 FadeOutSplashScreen 来实现渐变消失的效果,可以这样配置:

class FadeOutSplashScreen extends StatefulWidget {
  final Duration delay; // 启动画面显示的时间
  final Duration fadeDuration; // 淡出动画持续时间
  final WidgetBuilder contentBuilder; // 要展示的内容

  const FadeOutSplashScreen({
    Key? key,
    required this.delay,
    required this.fadeDuration,
    required this.contentBuilder,
  }) : super(key: key);

  [@override](/user/override)
  _FadeOutSplashScreenState createState() => _FadeOutSplashScreenState();
}

class _FadeOutSplashScreenState extends State<FadeOutSplashScreen> {
  late AnimationController _controller;
  late Animation<double> _opacity;

  [@override](/user/override)
  void initState() {
    super.initState();

    // 初始化动画控制器
    _controller = AnimationController(
      vsync: this,
      duration: widget.fadeDuration,
    );

    // 创建透明度动画
    _opacity = Tween<double>(begin: 1.0, end: 0.0).animate(_controller);

    // 延迟一段时间后开始动画
    Future.delayed(widget.delay, () {
      _controller.forward().then((_) {
        // 动画完成后隐藏启动画面
        DartBoardCore.instance.dispatchMethodCall(
            context: context, call: MethodCall("hideSplashScreen"));
      });
    });
  }

  [@override](/user/override)
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: _opacity,
      builder: (context, child) {
        return Opacity(
          opacity: _opacity.value,
          child: widget.contentBuilder(context),
        );
      },
    );
  }
}

更多关于Flutter启动画面插件dart_board_splash的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter启动画面插件dart_board_splash的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


dart_board_splash 是一个用于在 Flutter 应用中实现启动画面的插件。它允许你在应用启动时显示一个自定义的启动画面,并在应用初始化完成后自动切换到主界面。以下是如何使用 dart_board_splash 插件的步骤:

1. 添加依赖

首先,你需要在 pubspec.yaml 文件中添加 dart_board_splash 依赖:

dependencies:
  flutter:
    sdk: flutter
  dart_board_splash: ^0.0.1  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 配置启动画面

在你的 main.dart 文件中,配置 dart_board_splash 插件:

import 'package:flutter/material.dart';
import 'package:dart_board_splash/dart_board_splash.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SplashScreen(
        // 设置启动画面的背景颜色
        backgroundColor: Colors.white,
        // 设置启动画面的内容
        child: Center(
          child: Image.asset('assets/logo.png'), // 你的启动画面图片
        ),
        // 设置启动画面的持续时间
        duration: Duration(seconds: 3),
        // 设置启动画面结束后跳转的页面
        nextScreen: HomeScreen(),
      ),
    );
  }
}

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!'),
      ),
    );
  }
}

3. 添加启动画面资源

确保你的启动画面图片已经添加到项目的 assets 目录中,并在 pubspec.yaml 文件中进行配置:

flutter:
  assets:
    - assets/logo.png

4. 运行应用

现在,你可以运行你的 Flutter 应用程序。启动时,你将看到自定义的启动画面,持续 3 秒钟后自动跳转到主界面。

5. 自定义启动画面

你可以根据需要自定义启动画面的内容和行为。例如,你可以使用 SplashScreenonInit 参数来执行一些初始化操作:

SplashScreen(
  backgroundColor: Colors.white,
  child: Center(
    child: Image.asset('assets/logo.png'),
  ),
  duration: Duration(seconds: 3),
  nextScreen: HomeScreen(),
  onInit: () async {
    // 在这里执行一些初始化操作
    await Future.delayed(Duration(seconds: 1)); // 模拟初始化延迟
  },
);

6. 处理异步操作

如果你的启动画面需要在某些异步操作完成后才跳转到主界面,你可以使用 SplashScreenwaitFor 参数:

SplashScreen(
  backgroundColor: Colors.white,
  child: Center(
    child: Image.asset('assets/logo.png'),
  ),
  duration: Duration(seconds: 3),
  nextScreen: HomeScreen(),
  waitFor: () async {
    // 在这里执行一些异步操作
    await Future.delayed(Duration(seconds: 2)); // 模拟异步操作
  },
);
回到顶部