class _State extends State<YourWidget> with WidgetsBindingObserver {
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
}
@override
void dispose() {
super.dispose();
WidgetsBinding.instance.removeObserver(this);
}
@override
void didChangeMetrics() {
super.didChangeMetrics();
if (FocusManager.instance.primaryFocus?.hasFocus == true &&
MediaQueryData.fromView(View.of(context)).viewInsets.bottom == 0) {
FocusManager.instance.primaryFocus?.unfocus();
}
}
}