class _MyHomePageState extends State { int _counter = 0; bool _hide = false; FocusNode _focusNode; @override void initState() { super.initState(); _focusNode = new FocusNode(); _focusNode.addListener(_handleFocusChange); } void _handleFocusChange() { setState(() { _hide = true; }); } void _incrementCounter() { setState(() { _counter++; }); } @override Widget build(BuildContext context) { return new Scaffold( resizeToAvoidBottomPadding: false, appBar: new AppBar(title: new Text(widget.title)), body: new Center( child: new Column( mainAxisAlignment: MainAxisAlignment.center, children: [ new TextField(focusNode: _focusNode), new Text( '$_counter', style: Theme.of(context).textTheme.display1, ), ], ), ), floatingActionButton: _hide ? null : new FloatingActionButton( onPressed: _incrementCounter, tooltip: 'Increment', child: new Icon(Icons.add), ), ); } }