keyboard_overlay A simple way to show overlay widgets when keyboard rises, without changing widget three from your current project. It shows a custom widget when TextFields get focused, and everything is disposed automatically on StatefulWidget dispose. Add dependency dependencies: keyboard_overlay: ^0.1.0 //use mixin on State<StatefulWidget>: HandleFocusNodesOverlayMixin Init FocusNodeOverlay @override void initState() { _nodePassword = GetFocusNodeOverlay( child: SpecialDismissable( onOkButton: () => print(_nodePassword.controller.text), title: 'SPECIAL', ), controller: TextEditingController() ) } Use it on TextFields TextFormField( focusNode: _nodePassword, controller: _nodePassword.controller ) @override void dispose() { // Don't need to dispose FocusNodeOverlay and TextEditingController, it will be disposed automatically super.dispose(); }