title: updating text field in flutter on button click
body: <p>I'm developing an app on flutter, on main screen i have a button which open another screen which is inside a method. on that screen i want so to do some calculation like taking user input and updating text field, on clicking the button the method <strong>calculateAmount</strong> called which updates variable <strong>total</strong> which reflects on text field but text field is not updating, it only updates on pressing finished on keyboard... how can achieve this task.
  <strong>here is my code:</strong></p>
  
  <pre><code>    import 'package:flutter/material.dart';
      void main() {
  
        runApp(new MaterialApp(
            debugShowCheckedModeBanner: false,
          home: new homePage()
        ));
      }
  
      class homePage extends StatefulWidget {
  
        @override
        homePageState  createState() =&gt; new homePageState();
      }
      class homePageState extends State&lt;homePage&gt; {
  
      double metal = 0.0;
      double total = 0.0;
  
        @override
        Widget build(BuildContext context) {
          return new Scaffold(
            appBar: new AppBar(
              title: new Text("APP-Title",), backgroundColor: Colors.orange),
             body: new Container(
              child: new Center(
                  child: new Column(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: &lt;Widget&gt;[
  
                      new Row(
                        mainAxisAlignment: MainAxisAlignment.center,
                        children: &lt;Widget&gt;[
  
                          new Expanded(child: new RaisedButton.icon(
                            color: Colors.orange,
                            icon: const Icon(
                              Icons.info, size: 25.0, color: Colors.white,),
                            label: new Text('Calculate', style: new TextStyle(
                                color: Colors.white
                                )),
                            onPressed: () {
                              calculateWindow();
                            ),),
                     ],
                  )
                ],
              )
          ),
        ),
      );
    }
   void calculateWindow(){
      Navigator.of(context).push(
        new MaterialPageRoute(
          builder: (context) {
            return new Scaffold(
              appBar: new AppBar(
                title: new Text('Calculator'),
                backgroundColor: Colors.orange,
              ),
              body: new ListView(
                children: &lt;Widget&gt;[
  
                  new Row(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: &lt;Widget&gt;[
                      new Container(
                        height: 50.0,
                        width: 360.0,
                        decoration: new BoxDecoration(
                          color: Colors.orange,
                          shape: BoxShape.rectangle,
                        ),
                        child: new Center(
                          child: new Row(
                            children: &lt;Widget&gt;[
                              new Expanded(
                                child: new Container(
                                  child:  new Text("Gold &amp; Silver in Sold &amp; Ornaments",
                                    style: textStyle,
                                    textAlign: textAlign
                                  ),
                                ),
                              ),
                              new Container(
                                height: 40.0,
                                width: 80.0,
                                decoration:  new BoxDecoration(
                                    color: Colors.white),
                                child: new TextField(
                                    keyboardType: TextInputType.number,
                                    onSubmitted : (String value) {
                                      try {
                                        metal = double.parse(value.toString());
                                        print(total);
                                      } catch (exception) {
                                        metal = 0.0;
                                      }
                                    }
                                ),
                              ),
                            ],
                          ),
                        ),
                        ),
  
                    ],
                  new Row(
                    mainAxisAlignment: MainAxisAlignment.center,
                    children: &lt;Widget&gt;[
                      new Expanded(
                        child: new Container(
                            width: 50.0,
                            child: new RaisedButton.icon(
                              color: Colors.grey,
                              icon: const Icon(
                                Icons.check, size: 25.0, color: Colors.white,),
                              label: new Text('Calculate', style: new TextStyle(
                                  color: Colors.white,
                                 )),
                              onPressed: calculateAmount,
                            ),
                        ),
                      ),
                    ],
                  ),
                  new Row(
                    crossAxisAlignment: CrossAxisAlignment.center,
                    children: &lt;Widget&gt;[
                      new Container(
                        height: 50.0,
                        width: 350.0,
                        decoration: new BoxDecoration(
                          color: Colors.blueGrey,
                          shape: BoxShape.rectangle,
                        ),
                        child: new Center(
                          child: new Row(
                            children: &lt;Widget&gt;[
                              new Expanded(
                                child: new Container(
                                  child:  new Text("Total Amount:",
                                    style: new TextStyle(
                                    color: Colors.white,),
                                    textAlign: TextAlign.left,),
                                ),
                              ),
                              new Container(
  
                                child: new Text(
                                  '$total',
                                  textAlign: TextAlign.left,
                                  overflow: TextOverflow.ellipsis,
                                  style: textStyle,
                                  textDirection: TextDirection.ltr,
                                )
                              ),
                            ],
                          ),
                        ),
                      ),
                    ],
                  ),
                ],
              ),
            );
          },
        ),
      );
    }
   void calculateAmount(){
  
      setState((){
        total =  metal + 0.025;
  
      });
    }
  }
  </code></pre>