title: How to unfocus TextField that has custom FocusNode?
body: <p>I know that general answer to unfocusing is to use this piece of code: <code>FocusScope.of(context).requestFocus(new FocusNode());</code> </p>
  
  <p>But when TextField has custom focusNode, this code doesn't seem to work.</p>
  
  <p><code>SystemChannels.textInput.invokeMethod('TextInput.hide');</code> still works, but it only removes the keyboard - field itself is still selected.</p>
  
  <p>The code (irrelevant parts removed):</p>
  
  <pre><code>class RegisterScreen extends StatelessWidget {
    final phoneNumberTEC = TextEditingController();
    final passwordTEC = TextEditingController();
    final passwordFocusNode = FocusNode();
  
    @override
    Widget build(BuildContext context) {
      return this.keyboardDismisser(
        context: context,
        child: Scaffold(
          appBar: new AppBar(
            title: new Text("Register"),
          ),
          body: this.page(context),
          resizeToAvoidBottomPadding: false,
        ),
      );
    }
  
    Widget keyboardDismisser({BuildContext context, Widget child}) {
      final gesture = GestureDetector(
        onTap: () {
          this.passwordFocusNode.unfocus();
          FocusScope.of(context).requestFocus(new FocusNode());
          SystemChannels.textInput.invokeMethod('TextInput.hide');
        },
        child: child,
      );
      return gesture;
    }
  
    Widget page(BuildContext context) {
      return Column(
          mainAxisAlignment: MainAxisAlignment.spaceBetween,
          children: &lt;Widget&gt;[
            Container(
              padding: new EdgeInsets.all(16.0),
              child: Column(
                  mainAxisAlignment: MainAxisAlignment.center,
                  crossAxisAlignment: CrossAxisAlignment.center,
                  children: &lt;Widget&gt;[
                    this.phoneNumberTextField(context),
                    this.passwordTextField(context),
                  ]
              ),
            ),
            // cutting irrelevant widgets out
            )
          ]
      );
    }
  
    Widget phoneNumberTextField(BuildContext context) {
      return TextField(
        controller: this.phoneNumberTEC,
        decoration: InputDecoration(hintText: "Phone number"),
        onSubmitted: (string) {
          FocusScope.of(context).requestFocus(this.passwordFocusNode);
        },
      );
    }
  
    Widget passwordTextField(BuildContext context) {
      return TextField(
        controller: this.passwordTEC,
        decoration: InputDecoration(hintText: "Password"),
        obscureText: true,
        focusNode: this.passwordFocusNode,
        onSubmitted: (string) {
          this.performRegister(context);
        },
      );
    }
  
  }
  </code></pre>