搜索插件、代码仓与 APP 分类

flutter_overboard 封面
插件详情v3.1.3

flutter_overboard

用于 Flutter 的引导界面小部件,只需最少的代码即可创建精美的引导幻灯片。

AndroidiOSWebmacOSWindowsLinux
近 30 天下载
1870
喜欢数
158
Pub 分数
145

安装插件

flutter pub add flutter_overboard

插件介绍

基于插件公开信息、社区数据与项目使用情况整理的选型参考。

Flutter Overboard 是一个轻量级、可自定义的 Flutter 引导组件,使开发者能够用最少的代码创建视觉效果出色的引导页。它支持流畅的过渡和直观的导航,非常适合引导用户了解应用功能或教程。该包可无缝集成到所有主要平台,包括 Android、iOS、Web、macOS、Windows 和 Linux。通过简单的配置选项,它能够在不牺牲设计灵活性的情况下,快速设置多页引导体验。

适合场景

  • 应用入门教程
  • 用户功能导览
  • 首次用户体验
  • 产品介绍屏幕
  • 移动和网页应用中的引导流程

主要特点

  • 最小代码设置
  • 可定制的幻灯片设计
  • 平滑过渡动画
  • 跨平台兼容性
  • 内置导航控件
  • 每张幻灯片的自定义内容支持

适合对象

  • 寻求快速入门实现的开发者
  • 需要吸引用户参与的入门体验的应用程序
  • 针对多个平台的项目
  • 注重设计的应用程序
  • 原型设计入门流程

使用建议

  • 有限的内置自定义功能,仅限基本样式
  • 需要手动处理复杂的导航逻辑
  • 未针对高度动态内容进行优化
  • 依赖外部依赖项以实现高级功能
  • 可能需要额外的工作以支持本地化

原始 README

以下为关联源码仓库的 README 原文快照,最新内容请访问源码仓库。

flutter_overboard

pub package

Onboarding widget for flutter to create beautiful onboarding slides with minimal code.

Demo

Example Gif

Usage

Add following command in your pubspec.yaml & install package

flutter_overboard:3.1.3

or run

flutter pub add flutter_overboard

Import in your dart page

import 'package:flutter_overboard/flutter_overboard.dart';

Create a pages array like

    final pages = [
        new PageModel(
            color: const Color(0xFF0097A7),
            imageAssetPath: 'assets/01.png',
            title: 'Screen 1',
            body: 'Share your ideas with the team',
            doAnimateImage: true),
        new PageModel(
            color: const Color(0xFF536DFE),
            imageAssetPath: 'assets/02.png',
            title: 'Screen 2',
            body: 'See the increase in productivity & output',
            doAnimateImage: true),
        new PageModel(
            color: const Color(0xFF9B90BC),
            imageAssetPath: 'assets/03.png',
            title: 'Screen 3',
            body: 'Connect with the people from different places',
            doAnimateImage: true),
    ];

You can also pass widgets as page model

    PageModel.withChild(
        child: new Padding(
          padding: new EdgeInsets.only(bottom: 25.0),
          child: new Image.asset('assets/02.png', width: 300.0, height: 300.0),
        ),
        color: const Color(0xFF5886d6),
        doAnimateChild: true)

Add follwing in you dart code widget

    OverBoard(
        pages: pages,
        showBullets: true,
        skipCallback: () {
          // WRITE SKIP BUTTON ACTION HERE
        },
        finishCallback: () {
          // WRITE THE FINISH BUTTON ACTION HERE
        },
      ),

That's it. You are done with the setup now try to run your app.

To customize the circle reveal center point use (Overboard Widget)

    center: Offset(dx, dy);

To customize the text of buttons (Overboard Widget)

    skipText: "Go Out",
    nextText: "Go Forward",
    finishText: "END",

To customize the color of buttons (Overboard Widget)

    buttonColor: Colors.blue,

To customize the color of bullets (Overboard Widget)

    activeBulletColor: Colors.white,
    inactiveBulletColor: Colors.white30,

To customize the background of pages (Overboard Widget)

  backgroundProvider: NetworkImage('https://picsum.photos/720/1280')

OR

  backgroundProvider: ImageProvider('assets/images/bg.jpg')

To customize the color of page text (PageModel Widget)

    titleColor: Colors.blue,
    bodyColor: Colors.red,

To add the scroll support using keyboard & mouse wheel (Overboard Widget)

    allowScroll: true,
Overboard Widget
PROPERTY TYPE REQUIRED DETAILS
pages List yes List of pages to render on-boarding
center Offset no Offset to set center point of revealing circle
showBullets Boolean no Enable/disable bullets visibility
skipText String no Customize skip button text
nextText String no Customize next button text
finishText String no Customize finish button text
buttonColor Color no Customize button color
activeBulletColor Color no Customize active bullet color
inactiveBulletColor Color no Customize inactive bullet color
backgroundProvider ImageProvider no Overboard background image provider
skipCallback VoidCallback no Skip button click callback
finishCallback VoidCallback no Finish button click callback
PageModel Widget
PROPERTY TYPE REQUIRED DETAILS
color Color no Background color of the page
imageAssetPath String no Image path from asset to show in page
title String no Title text of the page
body String no Body text of the page
child Widget no Custom widget to pass as image in page
doAnimateChild Boolean yes To enable/disable child animation
doAnimateImage Boolean yes To enable/disable image animation
titleColor Color no Change color of title text
bodyColor Color no Change color of body text

Example

import 'package:flutter/material.dart';

import 'package:flutter_overboard/flutter_overboard.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Overboard Demo',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final GlobalKey<ScaffoldState> _globalKey = new GlobalKey<ScaffoldState>();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _globalKey,
      body: OverBoard(
        pages: pages,
        showBullets: true,
        skipCallback: () {
          _globalKey.currentState.showSnackBar(SnackBar(
            content: Text("Skip clicked"),
          ));
        },
        finishCallback: () {
          _globalKey.currentState.showSnackBar(SnackBar(
            content: Text("Finish clicked"),
          ));
        },
      ),
    );
  }

  final pages = [
        PageModel(
            color: const Color(0xFF0097A7),
            imageAssetPath: 'assets/01.png',
            title: 'Screen 1',
            body: 'Share your ideas with the team',
            doAnimateImage: true),
        PageModel(
            color: const Color(0xFF536DFE),
            imageAssetPath: 'assets/02.png',
            title: 'Screen 2',
            body: 'See the increase in productivity & output',
            doAnimateImage: true),
        PageModel(
            color: const Color(0xFF9B90BC),
            imageAssetPath: 'assets/03.png',
            title: 'Screen 3',
            body: 'Connect with the people from different places',
            doAnimateImage: true),
        PageModel.withChild(
            child: Padding(
              padding: EdgeInsets.only(bottom: 25.0),
              child: Image.asset('assets/02.png', width: 300.0, height: 300.0),
            ),
            color: const Color(0xFF5886d6),
            doAnimateChild: true)
  ];
}

LICENSE

MIT LICENSE

所属分类

源码仓库

使用此插件的项目

暂无相关数据。