flutter_intro_screen 0.0.1 flutter_intro_screen: ^0.0.1 copied to clipboard
Flutter simple splash screen with minimum configuration
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:flutter_intro_screen/flutter_intro_screen.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
@override
Widget build(BuildContext context) {
// read from shared preference or data base
bool showIntroScreen = true;
return MaterialApp(
debugShowCheckedModeBanner: false,
title: 'Example',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: showIntroScreen ? const LandingPage() : const MyHomePage(),
);
}
}
class LandingPage extends StatefulWidget {
const LandingPage({Key? key}) : super(key: key);
@override
State<LandingPage> createState() => _LandingPageState();
}
class _LandingPageState extends State<LandingPage> {
@override
Widget build(BuildContext context) {
const colors = IntroColors(
button: Color(0xfff39c12),
text: Colors.white,
background: Color(0xff0d3352),
);
return Scaffold(
body: IntroScreen(
onNextPressed: () {},
colors: colors,
appLogo: _buildAppLogo(),
pageData: _buildPageData(),
centerWidget: Text(
"swap left to continue",
style: GoogleFonts.raleway(),
),
),
);
}
Widget _buildAppLogo() {
return Column(
mainAxisSize: MainAxisSize.min,
children: [
const Icon(
Icons.house,
color: Colors.white,
),
const SizedBox(height: 12),
Text(
"Example App",
style: GoogleFonts.yesevaOne(fontSize: 24),
),
],
);
}
List<IntroPageData> _buildPageData() {
final titleStyle = GoogleFonts.yesevaOne(fontSize: 24);
final descriptionStyle = GoogleFonts.raleway(fontSize: 16);
return <IntroPageData>[
IntroPageData(
title: Text(
"Find it",
style: titleStyle,
),
description: Text(
"filters, maps, and search",
textAlign: TextAlign.center,
style: descriptionStyle,
),
image: const IntroAssetsImage(path: "assets/images/intro-1.jpg"),
),
IntroPageData(
title: Text(
"Tour it.",
style: titleStyle,
),
description: Text(
"read all the details about the property",
textAlign: TextAlign.center,
style: descriptionStyle,
),
image: const IntroAssetsImage(path: "assets/images/intro-2.jpg"),
),
IntroPageData(
title: Text(
"Own it.",
style: titleStyle,
),
description: Text(
"Direct contact with the owner of the property",
textAlign: TextAlign.center,
style: descriptionStyle,
),
image: const IntroAssetsImage(path: "assets/images/intro-3.jpg"),
),
];
}
}
class MyHomePage extends StatefulWidget {
const MyHomePage({Key? key}) : super(key: key);
@override
State<MyHomePage> createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return const Scaffold(
body: Center(
child: Text('Flutter Demo Home Page'),
),
);
}
}