How to clear Flutter's Build cache?
run the next command on project folder 
flutter clean .
How to Call StatelessWidget with parameter ?
//MainBody(1); call MainBody and pass 1 to the classclass MainBody extends StatelessWidget {
  MainBody(this.yourData);
  final int yourData;
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      body: new Padding(
        padding: const EdgeInsets.only(left: 20.0, right: 20.0),
        child: new Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            new TimeCheck(yourData),
          ],
        ),
      ),
    );
  }
}How to Call StatefulWidget with parameter?
//MyHomePage(title: 'MBRF Home Page');
class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);
  final String title;
  @override
  _MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: Text(widget.title),
        ));
  }
}
SAMPLE Code
import 'package:flutter/material.dart';
void main(){
  runApp(MaterialApp(
    title: "Demo App",
    routes: {
      HomePage.routeName : (_) => HomePage(),
      Step1Page.routeName : (_) => Step1Page(),
      Step2Page.routeName : (_) => Step2Page(),
      Step3Page.routeName : (_) => Step3Page(),
    },
    home: SplashPage(),
    initialRoute: HomePage.routeName,
  ));
}
class SplashPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold();
  }
}
class HomePage extends StatelessWidget {
  static const routeName = "/home";
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("Home Page"),
            RaisedButton(onPressed: (){
              Navigator.pushNamed(context, Step1Page.routeName);
            }, child: Text("Start Steps"),)
          ],
        ),
      ),
    );
  }
}
class Step1Page extends StatelessWidget {
  static const routeName = "/step1";
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("Step1 Page"),
            RaisedButton(onPressed: (){
              Navigator.pushNamed(context, Step2Page.routeName);
            }, child: Text("Go Step2"),)
          ],
        ),
      ),
    );
  }
}
class Step2Page extends StatelessWidget {
  static const routeName = "/step2";
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("Step2 Page"),
            RaisedButton(onPressed: (){
              Navigator.pushNamed(context, Step3Page.routeName);
            }, child: Text("Go Step3"),)
          ],
        ),
      ),
    );
  }
}
class Step3Page extends StatelessWidget {
  static const routeName = "/step3";
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text("Step3 Page"),
            RaisedButton(onPressed: (){
              Navigator.popUntil(context, (Route<dynamic> route){
                bool shouldPop = false;
                if(route.settings.name == HomePage.routeName){
                  shouldPop = true;
                }
                return shouldPop;
              });
            }, child: Text("Go Home"),)
          ],
        ),
      ),
    );
  }
}Dialog
showDialog<bool>( context: context, builder: (c) => AlertDialog( title: Text('Warning'), content: Text('Do you want to register on new conference?'), actions: [ FlatButton( child: Text('Yes'), onPressed: () => Navigator.popUntil(context, (Route<dynamic> route){ bool shouldPop = false; print(route.settings.name); if(route.settings.name == "RegisterConfranceForm"){ shouldPop = true; } return shouldPop; }) , ), FlatButton( child: Text('No'), onPressed: () => Navigator.of(c).popUntil((route) => route.isFirst), ), ], ),
 Navigator.popUntil(context, (Route<dynamic> route){
            bool shouldPop = false;
            if(route.settings.name == HomePage.routeName){
              shouldPop = true;
            }
            return shouldPop;
          });Flutter - Disable/Override Back Button with WillPopScope
https://www.woolha.com/tutorials/flutter-disable-override-back-button-with-willpopscope
 
No comments:
Post a Comment