title: How to update screen, based on LoginInputField, before keyboard is Dismissed?
body: <p>I have a simple login screen with an email and password LoginInputField. When the fields are empty, the login button is greyed out and disabled. When they both have text in them, the button is enabled. What I have works, but it will not update until the user has dismissed the keyboard. I want the user to be able to click the button without needing to first dismiss the keyboard.</p>
  
  <p>I have TextEdditingControllers on the LoginInputFields, and check the state of the controllers during the build and set accordingly.</p>
  
  <pre><code>class LoginState extends State&lt;Login&gt; {
  
      final emailController = TextEditingController();
      final passwordController = TextEditingController();
      ButtonStyle loginButtonStyle;
      bool loginDisabled = true;
  
      void setLoginButtonStyle(){
        if(emailController.text != '' &amp;&amp; passwordController.text != ''){
          setState(() {
            this.loginButtonStyle = buttonPrimary;
          });
          loginDisabled = false;
        } else {
          this.loginButtonStyle = buttonDisabled;
          loginDisabled = true;
        }
      }
  
    @override
    Widget build(BuildContext context) {
    setLoginButtonStyle();
    //build widgets
    RoundedButton(
      buttonText: 'Log In',
      buttonStyle: loginButtonStyle,
      onPressed: () {
                      if (!loginDisabled){
                        //login through server
                      } 
                    },
      ),
      //more widgets
    }
  </code></pre>