2 votes

Flutter : Comment ajouter un SplashScreen à la page principale ?

Bonjour, j'essaie d'ajouter ma page SplashScreen à mon fichier main.dart mais j'ai des problèmes pour ajouter la fonction SplashScreen() à ma page d'accueil :

Ma maison est actuellement un échafaudage. Je me demande comment je peux y inclure mon SplashScreen. J'essaie de comprendre comment modifier le Scaffold. Quelqu'un pourrait-il m'aider ? Merci beaucoup par avance.

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
    State<StatefulWidget> createState() {
      return MyAppState();
    }
}

class MyAppState extends State<MyApp> {

  int _selectedPage = 0;
  final _pageOptions = [
    Home(),
    Category(),
    Video(),

  ];

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',

      initialRoute: '/',
      onGenerateRoute: RouteGenerator.generateRoute,

    home: Scaffold(

      body: _pageOptions[_selectedPage],
      bottomNavigationBar: BottomNavigationBar(
        type: BottomNavigationBarType.fixed,
        currentIndex: _selectedPage,
        onTap: (int index) {
          setState(() {
            _selectedPage = index;
          });
        },
         items: [
              BottomNavigationBarItem(
                icon: Icon(Icons.home), title: Text('Home')),
              BottomNavigationBarItem(
                icon: Icon(Icons.format_list_bulleted), title: Text('Category')),
              BottomNavigationBarItem(
                icon: Icon(Icons.subscriptions), title: Text('Videos')),

            ]

      ),
    )

    );

  }
}

2voto

Sanket Vekariya Points 1981

Essayez le code ci-dessous :

import 'dart:async';
import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: SplashScreen(),
    );
  }
}

class SplashScreen extends StatefulWidget {
  @override
  _SplashScreenState createState() => _SplashScreenState();
}

class _SplashScreenState extends State<SplashScreen> {
  @override
  void initState() {
    super.initState();
    countDownTime();
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text("Splash Screen"),
      ),
    );
  }

  countDownTime() async {
    return Timer(
      Duration(seconds: 2),
      () async {
        Navigator.pushReplacement(
          context,
          MaterialPageRoute(builder: (context) => HomeScreen()),
        );
      },
    );
  }
}

class HomeScreen extends StatefulWidget {
  @override
  HomeScreenState createState() => HomeScreenState();
}

class HomeScreenState extends State<HomeScreen> {
  int _selectedPage = 0;
  final _pageOptions = [
    Scaffold(body: Center(child: Text("Home")),),
    Scaffold(body: Center(child: Text("Category")),),
    Scaffold(body: Center(child: Text("Video")),),
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: _pageOptions[_selectedPage],
      bottomNavigationBar: BottomNavigationBar(
          type: BottomNavigationBarType.fixed,
          currentIndex: _selectedPage,
          onTap: (int index) {
            setState(() {
              _selectedPage = index;
            });
          },
          items: [
            BottomNavigationBarItem(
                icon: Icon(Icons.home), title: Text('Home')),
            BottomNavigationBarItem(
                icon: Icon(Icons.format_list_bulleted),
                title: Text('Category')),
            BottomNavigationBarItem(
                icon: Icon(Icons.subscriptions), title: Text('Videos')),
          ]),
    );
  }
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X