0

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

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。

有人可以帮我解决这个问题吗?@_@

4

1 回答 1

0

尝试将密钥添加到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,
          controller: _kommentCtrl,
          //...
          ),
        ),
      ),
);

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

于 2021-03-18T06:53:02.447 回答