title: Losing state of each form field when the form is scrolled off screen?
body: <p>How can I can <strong>save state of each form field when the form is scrolled off screen?</strong> I lose the values I typed in the <strong>TextFormFields</strong> when I scroll up and the fields are off the screen. </p>
  
  <p>I have heard the suggestion of saving it in controller and then assigning to initialvalue of TextFormField as seen in the code but it doesn't work for me. What am I missing?</p>
  
  <pre><code>TextEditingController _controller = new TextEditingController();
  
  @override
    Widget build(BuildContext context) {
      return new Scaffold(
        key: scaffoldKey,
        appBar: new AppBar(
          title: new Text('Enter Vehicle'),
        ),
        body: new Padding(
            padding: const EdgeInsets.all(16.0),
            child: new Form(
                key: formKey,
                child: new ListView(children: &lt;Widget&gt;[
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Vehicle Number'),
                    controller: _controller,
                    initialValue: _controller.text,
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Tag'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Make'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Model'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Year'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Vehicle Type'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Location'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Fuel'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Other'),
                  ),
                  new TextFormField(
                    decoration: new InputDecoration(labelText: 'Your password'),
                    validator: (val) =&gt;
                    val.length &lt; 6 ? 'Password too short.' : null,
                    onSaved: (val) =&gt; _password = val,
                    obscureText: true,
                  ),
                  new RaisedButton(
                    onPressed: _submit,
                    child: new Text('Login'),
                  ),
                ],)
            )
        ),
      );
    }
  </code></pre>