Я делаю первое приложение-заставку, за которым следует страница пошагового руководства, если пользователь впервые использовал приложение, в противном случае перейдите на страницу приветствия, чтобы войти в систему или зарегистрироваться, если вы уже видели экран пошагового руководства.
Мой код пришел из файла main.dart этого проекта: https://github.com/instaflutter/flutter-login-screen-firebase-auth-facebook-login и изменил его к этому коду (из учебника по всплывающему экрану FlutterKart)
import 'dart:async';
import 'package:flutter/material.dart';
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:binder/ui/screens/root_screen.dart';
import 'package:binder/ui/screens/walk_screen.dart';
void main() {
Firestore.instance.settings(timestampsInSnapshotsEnabled: true);
SharedPreferences.getInstance().then((prefs) {
SplashScreen(prefs: prefs);
});
}
class SplashScreen extends StatefulWidget {
final SharedPreferences prefs;
SplashScreen({Key key,this.prefs}): super(key: key);
@override
_SplashScreenState createState() => _SplashScreenState();
}
class _SplashScreenState extends State<SplashScreen> {
@override
void initState() {
super.initState();
Timer(Duration(seconds: 3), () => _handleCurrentScreen(context));
}
@override
Widget build(BuildContext context) {
final logowhite = Hero(
tag: 'hero',
child: //code insert flutterkart splashscreen
)
],
),
)
],
)
],
),
);
}
Widget _handleCurrentScreen (BuildContext context) {
bool seen = (widget.prefs.getBool('seen') ?? false);
if (seen) {
return new RootScreen();
} else {
return new WalkthroughScreen(prefs: widget.prefs);
}
}
}
Я хочу, чтобы он сначала показывал заставку и был направлен накорневой экран, если он уже виден, и экран пошагового руководства, если в первый раз использовать.