Flutter 键盘在模拟器和真实设备上都没有显示>

问题描述

我的意思是键盘确实出现了几毫秒然后立即消失了,这是在模态底部工作表中,但我认为这不是工作表的问题。

Container(
  height: 50,width: double.infinity,padding: const EdgeInsets.only(left: 20),decoration: Boxdecoration(
    color: kAccent,border: Border(
      top: BorderSide(color: kBackground,width: 0.5),),child: Container(
        alignment: Alignment.center,padding: const EdgeInsets.only(left: 10),width: hasText ? 300 : 350,height: 40,alignment: Alignment.center,decoration: Boxdecoration(
          color: kPrimary,borderRadius: BorderRadius.circular(15),child: TextField(
          focusNode: _komNode,controller: _kommentCtrl,decoration: Inputdecoration.collapsed(
            hintText: 'Leave seme nice K-omments~',hintStyle: kOnPrimaryMediumText,maxLength: 100,);

我看到有人说这是编译版本28的bug,降级到27可以修复,但是我的项目已经是Sound Null Safety,如果我降级了,就得重写整个应用程序,因此,我无法将其降级到 27。

谁能帮我解决这个问题? @_@

解决方法

尝试向 TextField 添加一个键,

child: TextField(
          key: ValueKey("Your unique value"),focusNode: _komNode,controller: _kommentCtrl,decoration: InputDecoration.collapsed(
            hintText: 'Leave seme nice K-omments~',hintStyle: kOnPrimaryMediumText,),maxLength: 100,

更新

我认为问题在于当您打开模态表时文本字段失去焦点并因此键盘关闭,因此请先尝试在构建方法之外声明您的小部件。像这样:

final _myModalSheet =  Container(
  //...
  child: Container(
        //...
        child: TextField(
          focusNode: _komNode,//...
          ),);

然后在您的构建方法中添加 _myModalSheet。