在键盘上完成击键操作可清除颤动中的文本

时间:2019-05-16 07:49:56

标签: flutter uitextfield

我有一个TextField()和一个控制器,我将其传递给TextField控制器。我的问题是,每次我敲击键盘时,都会清除文本。

我遵循了以下问题:Flutter keyboard done button causes textfield content to vanish 这个问题可以解决我的问题,但没有任何解决方案。因此,我一无所知,将这个问题再次放在StackOverflow上。

我的代码:

class ReferralPage extends StatelessWidget {
  final TextEditingController controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(),
      body: Container(
         margin: EdgeInsets.only(top: 40.0, left: 16.0, right: 16.0),
         child: Card(
           color: Colors.white,
           child: Padding(
              padding: EdgeInsets.all(24.0),
              child: TextField(
                 controller: controller,
                 cursorColor: Theme.of(context).primaryColor,
                 decoration: InputDecoration(hintText: 'Referral Code'),
              )
           )
         ),
         decoration: BoxDecoration(boxShadow: [
          new BoxShadow(color: Color.fromRGBO(173, 179, 191, 0.3), blurRadius: 20.0, offset: new Offset(0, 12))
         ])
     )
   );
 }
} 

如您所见,我的TextEditingController()不在Widget build内,所以没有发生这种情况的感觉。

  

我发现此问题的唯一解决方案是删除控制器,但我不想这样做,我想将控制器用于其他目的。我不知道为什么会这样。

任何帮助将不胜感激。谢谢:)

1 个答案:

答案 0 :(得分:1)

您遇到此问题是因为您正在使用无状态窗口小部件。将您的无状态窗口小部件更改为有状态窗口小部件,以使您的控制器不会被重建。