Flutter app world logo
  • Home
  • Flutter App
    • UI
    • ads
    • Timeline
    • Widgets
    • Plugin
    • Games
    • library
    • Templates
    • Maps
    • Timeline
    • clock
    • Animation
    • packages
  • Dart
  • Marketplace

Add easily to your app an introduction screen

 August 27, 2020   Login, packages, Packages, UI

IntroductionScreen 

Introduction screen allow you to have a screen at launcher for example, where you can explain your app. This Widget is customizable (more in the future) with a great design.

Introduction_screen use another package, dots_indicator, that I also created.

Demo

Installation

You just need to add introduction_screen as a dependency in your pubspec.yaml file.

dependencies:
  introduction_screen: ^1.0.7

Example

In these example, listPagesViewModel is the list of pages. A page is base on PageViewModel. See example of a PageViewModel below.

PageViewModel

Simple page

This example only define title, body and an image (you can define any widget)

PageViewModel(
  title: "Title of first page",
  body: "Here you can write the description of the page, to explain someting...",
  image: Center(
    child: Image.network("https://domaine.com/image.png", height: 175.0),
  ),
)

Page with custom colors

This example show you how to define the color of the page

PageViewModel(
  title: "Title of first page",
  body: "Here you can write the description of the page, to explain someting...",
  image: Center(child: Image.asset("res/images/logo.png", height: 175.0)),
  decoration: const PageDecoration(
    pageColor: Colors.blue,
  ),
)

Page with custom text style

This example show you how to define another TextStyle for the title and the body

PageViewModel(
  title: "Title of first page",
  body: "Here you can write the description of the page, to explain someting...",
  image: const Center(child: Icon(Icons.android)),
  decoration: const PageDecoration(
    titleTextStyle: TextStyle(color: Colors.orange),
    bodyTextStyle: TextStyle(fontWeight: FontWeight.w700, fontSize: 20.0),
  ),
)

Page with a footer, like a button

This example show you how to define a page with a footer, like a Button

PageViewModel(
  title: "Title of first page",
  body: "Here you can write the description of the page, to explain someting...",
  image: const Center(child: Icon(Icons.android)),
  footer: RaisedButton(
    onPressed: () {
      // On button presed
    },
    child: const Text("Let's Go !"),
  ),
);

Page with widget body

This example show you how to define a page with a body as Widget and not a simple String You can to the same this for title, with titleWidget parameter.

PageViewModel(
  title: "Title of first page",
  bodyWidget: Row(
    mainAxisAlignment: MainAxisAlignment.center,
    children: const [
      Text("Click on "),
      Icon(Icons.edit),
      Text(" to edit a post"),
    ],
  ),
  image: const Center(child: Icon(Icons.android)),
);

IntroductionScreen

Note :

If you not provide next parameter, the Next button will be not displayed. If you want to display a skip button, you must add skip parameter and showSkipButton: true.

The done parameter is required.

Simple intro screen

Simple intro screen

IntroductionScreen(
  pages: listPagesViewModel,
  done: const Text("Done", style: TextStyle(fontWeight: FontWeight.w600))
  onDone: () {
    // When done button is press
  },
); //Material App

Intro screen with skip button

IntroductionScreen(
  pages: listPagesViewModel,
  onDone: () {
    // When done button is press
  },
  showSkipButton: true,
  skip: const Text("Skip"),
  done: const Text("Done", style: TextStyle(fontWeight: FontWeight.w600)),
);

Intro screen with custom button text and dots indicators

IntroductionScreen(
  pages: listPagesViewModel,
  onDone: () {
    // When done button is press
  },
  onSkip: () {
    // You can also override onSkip callback
  },
  showSkipButton: true,
  skip: const Icon(Icons.skip_next),
  next: const Icon(Icons.next),
  done: const Text("Done", style: TextStyle(fontWeight: FontWeight.w600)),
  dotsDecorator: DotsDecorator(
    size: const Size.square(10.0),
    activeSize: const Size(20.0, 10.0),
    activeColor: theme.accentColor,
    color: Colors.black26,
    spacing: const EdgeInsets.symmetric(horizontal: 3.0),
    activeShape: RoundedRectangleBorder(
      borderRadius: BorderRadius.circular(25.0)
    )
  ),
);

Others parameters

There is other possibles parameters that you can add :

  • Freeze the scroll, by adding freeze: true parameter.
  • Hide dots indicators, by adding isProgress: false parameter.
  • Duration of scrolling animation, by adding animationDuration: 400 parameter.
  • Global background color, by adding globalBackgroundColor: Colors.blue parameter.
  • Initial page, by adding initialPage: 1 parameter.
  • Hide next button, by adding showNextButton: false parameter.
  • Skip button flex, by adding skipFlex: 1 parameter. (Set 0 to disable Expanded behaviour)
  • Dots indicator flex, by adding dotsFlex: 1 parameter. (Set 0 to disable Expanded behaviour)
  • Next/Done button flex, by adding nextFlex: 1 parameter. (Set 0 to disable Expanded behaviour)
  • Animation type between pages, by adding curve parameter.

Download IntroductionScreen package source code on GitHub

https://github.com/pyozer/introduction_screen

Check out implementation details on pub

https://pub.dev/packages/introduction_screen

Flutterappworld
Flutterappworld

Provides the list of the opensource Flutter apps collection with GitHub repository.

<< The Syncfusion Flutter Date Range Picker widget The Rick and Morty app built in flutter using rick&mortyapi.com >>

Flutter App Templates

Flutter App Template

Subscribe

Loading

Recent Posts

  • Flutter Client SDK for LiveKit
  • PrepPDF app provides organised access to previous year question papers and solutions
  • The project is a Flutter library for SMS verification codes
  • OpSo – Open Source Programs App
  • Learning app for kids

Categories

  • 3D
  • Admin
  • ads
  • AI
  • Alert
  • Algorithm
  • Analytics
  • Animation
  • Ant
  • API
  • Article
  • Audio
  • Authentication
  • Avatar
  • Backend
  • Badges
  • Bank
  • Barcode
  • Binding
  • Bitcoin Ticker
  • Bitwarden
  • BLoC
  • Blockchain
  • Bluetooth
  • Blur
  • BMI
  • Book
  • Booking
  • Button
  • Cache
  • calculator
  • Calendar
  • Camera
  • canvas
  • Captcha
  • Carousel
  • Carousel
  • Cart
  • Chart
  • chat
  • Chips
  • Choice
  • Class
  • Clipboard
  • Clipper
  • clock
  • Collection
  • Colors
  • Command Line
  • Community
  • Contact
  • Converter
  • Country Code
  • Covid-19
  • Crypto Currency
  • Cupertino
  • Currency
  • Dart
  • Dashboard
  • Database
  • Date & Time
  • Designs
  • Desktop
  • Desktop App
  • Dev Tool
  • Dialog
  • Doctor App
  • Downloader
  • Draw
  • Drawer
  • Dropdown
  • E-Learning
  • ecommerce
  • Editor
  • Education
  • Effect
  • Emoji
  • Encryption
  • Event
  • Exercises
  • Extension
  • Face Detection
  • Facebook
  • Feeds
  • Figma
  • File Manager
  • Files
  • Firebase
  • Flight
  • Floating
  • Flutter App
  • Flutter Card
  • Flutter Desktop
  • Food Ordering
  • Form
  • Framework
  • Furniture
  • Furniture Store
  • Games
  • Generator
  • Geocoding
  • Google Sheets
  • Graphics
  • GraphQL
  • Gravatar
  • grid
  • Grocery
  • Header
  • Health
  • Hooks
  • Http
  • Icons
  • Img
  • Input
  • IoT
  • Javascript
  • Json
  • Keyboard
  • Language Learning
  • Launcher
  • Laundry
  • Layout
  • Library
  • library
  • List
  • ListTile
  • Loader
  • Location
  • Login
  • Machine Learning
  • Mail
  • Maps
  • Marketplace
  • Material Design
  • Media
  • Medical
  • Menu
  • Messenger App
  • Meta Layer
  • Mobx
  • Movie
  • Music Player
  • MVC
  • Navigation
  • Navigation bar
  • Network
  • Neumorphic
  • News
  • Notes App
  • NuBank
  • on-boarding
  • OnBoarding
  • OTP
  • packages
  • Packages
  • Padding
  • Paginating
  • PAGINATION
  • parallax
  • Parser
  • Password
  • Payment Gateway
  • PDF
  • Picker
  • Pie chart
  • Pin Code
  • Pizza
  • Plugin
  • plugin
  • Podcast
  • popup
  • portfolio
  • POS
  • Progress
  • Push Notification
  • QR Code
  • Quiz
  • Radio Component
  • Rating Bar
  • Redux
  • Refresh
  • Remote
  • Render
  • Responsive
  • Rest API
  • Restaurants
  • Ribbon
  • Routing
  • School App
  • Screen
  • Scroll
  • Search
  • Shopping
  • Sidebar
  • Sign in
  • Simulator
  • Skeleton
  • Slider
  • SMS
  • Social Media
  • Solar
  • Splash screens
  • State Management
  • Stickers
  • Stocks Market
  • Streaming
  • SVG
  • Swagger
  • Swipe
  • Switch
  • TabBar
  • Table
  • Tags
  • Task Manager
  • Taxi
  • Templates
  • Testing
  • Text
  • Text Field
  • Theme
  • TikTok
  • Time Tracking
  • Timeline
  • Timelines
  • Toast
  • Todo
  • Toggle
  • Tools
  • Transition
  • Translator
  • Transport
  • Travel
  • TV app
  • Twitter
  • UI
  • Uncategorized
  • UX
  • Video
  • Video Conferencing
  • video player
  • Visualization
  • Wallet
  • Wallpapers
  • Watch
  • Weather
  • web app
  • Web Scraping
  • website
  • WeChat
  • Widgets
  • WooCommerce
  • wrapper
  • XML
  • Yoga

  • About US
  • Privacy Policy
  • Submit App
  • Web Stories
    • Free Online Food Delivery Apps for Business
    • Top 5 Flutter Applicatons – Open Source
    • Free Food Ordering App
This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Cookie settingsACCEPT
Privacy & Cookies Policy

Privacy Overview

This website uses cookies to improve your experience while you navigate through the website. Out of these cookies, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may have an effect on your browsing experience.
Necessary
Always Enabled
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Non-necessary
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
SAVE & ACCEPT