трепетать один раз экран ввода - PullRequest
0 голосов
/ 23 апреля 2020

У меня есть простое приложение флаттера, и я не могу заставить его работать должным образом с моим одноразовым вступлением. раньше мое приложение работало с такой частью сборки в 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(
      ...
    );}}

, но моя модель с областью действия, очевидно, не работать больше. Я не знаю куда мне его переместить. есть идеи?

...