apiv1

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();
    }
  }
}