У меня есть простое приложение флаттера, и я не могу заставить его работать должным образом с моим одноразовым вступлением. раньше мое приложение работало с такой частью сборки в main.dart:
@override
Widget build(BuildContext context) {
var app = MaterialApp(
debugShowCheckedModeBanner: false,
home: Builder(
builder: (context) =>
IntroViewsFlutter(
pages,
onTapDoneButton: () {
Navigator.push(
context,
MaterialPageRoute(
builder: (context) => MyHomePage(),
),);},
onTapSkipButton: () {
Navigator.push(
context,
MaterialPageRoute(builder: (context) => MyHomePage(),),);},),),),);
return ScopedModel<TodoListModel>(
model: TodoListModel(),
child: app,);}}
, теперь я изменил его на что-то вроде этого:
@override
Widget build(BuildContext context) {
var app = MaterialApp(
debugShowCheckedModeBanner: false,
home: new Splash(),);
return ScopedModel<TodoListModel>(
model: TodoListModel(),
child: app,);}}
class Splash extends StatefulWidget {
@override
SplashState createState() => new SplashState();}
class SplashState extends State<Splash> {
Future checkFirstSeen() async {
SharedPreferences prefs = await SharedPreferences.getInstance();
bool _seen = (prefs.getBool('seen') ?? false);
if (_seen) {
Navigator.of(context).pushReplacement(
new MaterialPageRoute(builder: (context) => new MyHomePage()));}
else { await prefs.setBool('seen', true);
Navigator.of(context).pushReplacement(
new MaterialPageRoute(builder: (context) => new IntroScreen()));}}
@override
void initState() {
super.initState();
new Timer(new Duration(milliseconds: 200), () {
checkFirstSeen();
});}
@override
Widget build(BuildContext context) {
return new Scaffold(
...
);}}
, но моя модель с областью действия, очевидно, не работать больше. Я не знаю куда мне его переместить. есть идеи?