概要
Flutterで側アプリ(WebView)内のテキスト入力にフォーカス時に現れるソフトウェアキーボードでテキスト入力が隠れる不具合を解消する方法です。
WebViewはwebview_flutter: ^3.0.1
※今のところiOSのみ確認済みです。
Before
After
解決方法
WebView をラップしている Scaffold の resizeToAvoidBottomInset を false にします
webview.dart
@override
Widget build(BuildContext context) {
return Scaffold(
resizeToAvoidBottomInset: false, // ← これを追加
body:
WebView(
//省略...
)
)
}
原因
body のスクロールだとこの不具合は起きないようですが
position: absolute や fixed の被ってくるもの高さ計算が入るものが影響していそうです。
まとめ
webview_flutterのバージョンアップしてみたり、cssをなんども調整し何日も溶かしました凹
Flutterのソースコード1行で済んだので助かりました。。。
キャプチャ動画だとわかりにくいですがソフトウェアキーボードがもどる時に戻り終えた箇所がしばらく白くなる現象も直っています。
ちなみに画面はReactです。