You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter移动端Web浏览器中TextField软键盘弹出后立即消失问题排查

移动端Web中Flutter TextField软键盘弹出后立即消失的问题

我开发的Flutter应用基于Flutter 3.3.7稳定版,需适配移动设备与Web浏览器。应用内包含一个绑定了TextEditingController的TextField组件,该组件在移动/平板原生应用、桌面Web浏览器中编辑功能均正常,但在移动端Web浏览器中,点击TextField后软键盘弹出瞬间即消失,且无任何报错信息。

相关组件代码如下:

class NameWidget extends StatefulWidget {
  const NameWidget({Key? key}) : super(key: key);

  @override
  State<NameWidget> createState() => _NameWidgetState();
}

class _NameWidgetState extends State<NameWidget> {
  final TextEditingController _textEditingController = TextEditingController();

  @override
  void initState() {
    super.initState();
    _textEditingController.text = client.name;
    _textEditingController.addListener(() {
      String name = _textEditingController.text;
      if (validate(name)) {
        client.name = name;
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Container(
      width: 250,
      height: 60,
      alignment: Alignment.center,
      child: TextField(
        keyboardType: TextInputType.name,
        scrollPadding: const EdgeInsets.only(bottom: 40),
        decoration: const InputDecoration(
            border: OutlineInputBorder(), labelText: 'Name'),
        maxLength: 9,
        controller: _textEditingController,
      ),
    );
  }

  @override
  void dispose() {
    _textEditingController.dispose();
    super.dispose();
  }
}

更新

将该TextField组件放入极简Web应用(Widget树为MaterialApp->StatefulWidget->Scaffold->Center->NameWidget)时,所有场景下软键盘均正常工作。因此问题应出在完整应用的Widget树中,需排查Scaffold与NameWidget之间的Column等组件是否存在异常。

内容的提问来源于stack exchange,提问作者Going Bananas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 01:55:32