Search code examples
fluttersplash-screenrive

How to set splash screen time out on flutter


I am new to flutter and am kinda lost on how to set up a time to my splash screen so after this time it goes to the main screen. am using rive for the splash screen

import 'package:flutter/material.dart';
import 'package:rive/rive.dart';
void main() {
 runApp(const MaterialApp(home: SimpleAnimation()));
}
class SimpleAnimation extends StatelessWidget {
 const SimpleAnimation({Key? key, this.loading}) : super(key: key);
 final bool? loading;

 @override
 Widget build(BuildContext context) {
   return const Scaffold(
     body: Center(
       child: RiveAnimation.asset('assets/splash/splash.riv',
         fit: BoxFit.cover)
     ),
   );
 }
}

Solution

  • You can set 3 second time in initstate after navigate to which screen you want

    class SplashScreen extends StatefulWidget {
      const SplashScreen({Key? key}) : super(key: key);
    
      @override
      _SplashScreenState createState() => _SplashScreenState();
    }
    
    class _SplashScreenState extends State<SplashScreen> {
      
      @override
      void initState() {
        // TODO: implement initState
        super.initState();
        
        // after 3 second it will navigate
        
        Future.delayed(const Duration(seconds: 3)).then((val) {
          // Navigation Here
        });
      }
      
      @override
      Widget build(BuildContext context) {
        return const Scaffold(
          // your code
        );
      }
    }