返回

Flutter实战:我的闪屏Splash Page和引导页开发之旅

前端

大家好,我是洋小洋,一位热衷于Flutter开发的程序员。上篇文章中,我们探讨了Flutter的基础知识和优势。今天,我们将继续深入Flutter的世界,探讨如何创建闪屏Splash Page和引导页。

前情回顾

在上一篇文章中,我们了解了Flutter的基本概念和优势。我们还创建了一个简单的Flutter应用程序,其中包含一个文本框和一个按钮。

闪屏Splash Page

闪屏Splash Page是用户在打开应用程序时看到的第一个屏幕。它通常用于显示应用程序的徽标或名称,以及一些加载动画。闪屏Splash Page可以帮助用户了解应用程序正在加载,并为他们提供一些期待。

在Flutter中,我们可以使用SplashScreen包来创建闪屏Splash Page。这个包提供了多种预定义的闪屏Splash Page模板,我们可以直接使用,也可以根据自己的需要进行自定义。

引导页

引导页是用户在第一次使用应用程序时看到的屏幕。它通常用于向用户介绍应用程序的功能和使用方法。引导页可以帮助用户快速了解应用程序,并提高他们的使用体验。

在Flutter中,我们可以使用IntroSlider包来创建引导页。这个包提供了多种预定义的引导页模板,我们可以直接使用,也可以根据自己的需要进行自定义。

实战步骤

1. 创建项目

首先,我们需要创建一个新的Flutter项目。我们可以使用以下命令:

flutter create my_app

2. 安装依赖

接下来,我们需要安装SplashScreenIntroSlider包。我们可以使用以下命令:

flutter pub add splashscreen
flutter pub add introslider

3. 创建闪屏Splash Page

lib文件夹中,创建一个新的Dart文件,并命名为splash_screen.dart。在文件中,添加以下代码:

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

class SplashScreenPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return SplashScreen(
      seconds: 5,
      navigateAfterSeconds: new AfterSplash(),
      title: new Text(
        'Flutter Splash Screen',
        style: new TextStyle(fontWeight: FontWeight.bold, fontSize: 20.0),
      ),
      image: new Image.asset('assets/logo.png'),
      backgroundColor: Colors.white,
      styleTextUnderTheLoader: new TextStyle(),
      photoSize: 100.0,
      onClick: () => print("Flutter Splash Screen"),
      loaderColor: Colors.red,
    );
  }
}

class AfterSplash extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Home Page'),
        ),
        body: new Center(
          child: new Text('Welcome to Flutter!'),
        ),
      ),
    );
  }
}

4. 创建引导页

lib文件夹中,创建一个新的Dart文件,并命名为intro_page.dart。在文件中,添加以下代码:

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

class IntroPage extends StatelessWidget {
  List<Slide> slides = new List();

  @override
  Widget build(BuildContext context) {
    slides.add(
      new Slide(
        title: "Slide 1",
        description: "Welcome to Flutter!",
        pathImage: "assets/slide1.png",
        backgroundColor: Color(0xff9932CC),
      ),
    );
    slides.add(
      new Slide(
        title: "Slide 2",
        description: "Flutter is a UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase.",
        pathImage: "assets/slide2.png",
        backgroundColor: Color(0xff4CAF50),
      ),
    );
    slides.add(
      new Slide(
        title: "Slide 3",
        description: "Flutter is easy to learn and use, and it's backed by Google.",
        pathImage: "assets/slide3.png",
        backgroundColor: Color(0xff009688),
      ),
    );

    return new IntroSlider(
      slides: this.slides,
      onDonePress: () => _onDonePressed(context),
    );
  }

  void _onDonePressed(context) {
    Navigator.push(
      context,
      MaterialPageRoute(builder: (context) => HomePage()),
    );
  }
}

class HomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      home: new Scaffold(
        appBar: new AppBar(
          title: new Text('Home Page'),
        ),
        body: new Center(
          child: new Text('Welcome to Flutter!'),
        ),
      ),
    );
  }
}

5. 配置路由

lib/main.dart文件中,添加以下代码:

import 'package:flutter/material.dart';
import 'package:my_app/splash_screen.dart';
import 'package:my_app/intro_page.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new MaterialApp(
      title: 'Flutter Demo',
      theme: new ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: new SplashScreenPage(),
      routes: {
        '/intro_page': (context) => new IntroPage(),
      },
    );
  }
}

运行程序

现在,我们可以运行程序了。可以使用以下命令:

flutter run

程序运行后,您将看到闪屏Splash Page。5秒后,闪屏Splash Page将消失,引导页将出现。引导页包含3个幻灯片,介绍Flutter的优点和特点。幻灯片看完后,您将进入应用程序的主页。

总结

在本文中,我们学习了如何在Flutter中创建闪屏Splash Page和引导页。我们使用SplashScreen包和IntroSlider包来创建这两个页面。我们还学习了如何配置路由,以便在闪屏Splash Page和引导页之间进行切换。