Pada artikel ini, Kita akan membuat Splash Screen dengan waktu yang telah ditentukan dengan contoh.
Saya telah membuat layar splash dengan Splash Image dan Circular Progress Indicator . Sertakan juga nama versi . Di sini delay adalah selama 5 detik. Jadi, setelah 5 detik SplashScreen akan digantikan oleh widget AfterSplashScreen.
Berikut adalah file SplashScreen.dart :
import 'dart:async';
import 'package:flutter/material.dart';
class SplashScreen extends StatefulWidget {
final Color backgroundColor = Colors.white;
final TextStyle styleTextUnderTheLoader = TextStyle(
fontSize: 18.0, fontWeight: FontWeight.bold, color: Colors.black);
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
String _versionName = 'V1.0';
final splashDelay = 5;
@override
void initState() {
super.initState();
_loadWidget();
}
_loadWidget() async {
var _duration = Duration(seconds: splashDelay);
return Timer(_duration, navigationPage);
}
void navigationPage() {
Navigator.pushReplacement(context, MaterialPageRoute(builder: (BuildContext context) => AfterSplash()));
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: InkWell(
child: Stack(
fit: StackFit.expand,
children: <Widget>[
Column(
mainAxisAlignment: MainAxisAlignment.start,
children: <Widget>[
Expanded(
flex: 7,
child: Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.asset(
'images/img_splash.png',
height: 300,
width: 300,
),
Padding(
padding: const EdgeInsets.only(top: 10.0),
),
],
)),
),
Expanded(
child: Column(
children: <Widget>[
CircularProgressIndicator(),
Container(
height: 10,
),
Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: <Widget>[
Spacer(),
Text(_versionName),
Spacer(
flex: 4,
),
Text('androing'),
Spacer(),
])
],
),
),
],
),
],
),
),
);
}
}
Di sini, fungsi async _loadWidget() digunakan untuk berpindah ke widget berikutnya setelah waktu selesai. AfterSplash() dalam fungsi navigationPage() adalah widget berikutnya yang ingin Anda pindahkan/ganti.
Selain t nya semuanya harus cukup jelas. Kita bisa menggunakan widget ini langsung di Widget RootApp kita.
Berikut adalah file main.dart :
import 'package:flutter/material.dart';
import 'package:ipomarket/helper/Style.dart';
import 'package:ipomarket/ui/SplashScreen.dart';
void main() => runApp(MyRootApp());
class MyRootApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
debugShowCheckedModeBanner: false,
theme: ThemeData(primarySwatch: Colors.red),
home: SplashScreen(),
);
}
}
Lev Yasin
Instruktur Web Programming Mataweb
Sangat tertarik dengan dunia Pemrograman Web & Mobile, saat ini fokus pada bagian Backend Web Developer, menggunakan PHP sebagai bahasa pemrograman utama, biasanya saya menggunakan Laravel.