diff --git a/analysis_options.yaml b/analysis_options.yaml index 6006d3a..68ce4d3 100644 --- a/analysis_options.yaml +++ b/analysis_options.yaml @@ -15,6 +15,9 @@ linter: - avoid_unused_constructor_parameters - use_super_parameters +formatter: + page_width: 80 + analyzer: errors: # Treat these as info/ignore for existing codebase compatibility diff --git a/lib/src/widgets/keyboard.dart b/lib/src/widgets/keyboard.dart index ac32ca5..07a3ac4 100644 --- a/lib/src/widgets/keyboard.dart +++ b/lib/src/widgets/keyboard.dart @@ -1,7 +1,9 @@ import 'dart:async'; import 'dart:math'; + import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; + import '../enums.dart'; import '../layouts/keyboard_language.dart'; import '../layouts/keyboard_layout_provider.dart'; @@ -136,8 +138,12 @@ class _VirtualKeypadState extends State { _inputControl = StandaloneInputControl( onShow: _onStandaloneShow, onHide: () { - if (!mounted) return; - setState(() => _standaloneVisible = false); + _standaloneVisible = false; + // onHide can be called during build + WidgetsBinding.instance.addPostFrameCallback((_) { + if (!mounted) return; + setState(() {}); + }); }, ); TextInput.setInputControl(_inputControl!); @@ -147,7 +153,6 @@ class _VirtualKeypadState extends State { void _disposeStandalone() { FocusManager.instance.removeListener(_onFocusChanged); if (_inputControl != null) { - TextInput.restorePlatformInputControl(); _inputControl = null; } }