按完后消失在文本字段中的文本消失

时间:2019-04-30 19:43:57

标签: flutter textfield

我在我的应用程序中使用文本字段来编写注释,当用户键入文本并按下按钮时,应将文本写入数据库。但是,我有一个问题,当我编写文本然后按“完成”或从键盘返回时,文本消失,然后没有要添加的注释。是否有任何想法即使在按完或返回后仍将文本值保存在文本字段中? 预先感谢。

3 个答案:

答案 0 :(得分:1)

不确定输入为何消失,但是可以使用TextEditingController并将该控制器传递给TextField。 然后使用TextField访问controller.text的值。

这是一个小例子

import 'package:flutter/material.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  String databaseText;
  TextEditingController controller = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: TextField(
            controller: controller,
            onEditingComplete: () {
              databaseText = controller.text;
              print(databaseText);
            },
          ),
        ),
      ),
    );
  }
}

答案 1 :(得分:0)

String _text;
final formKey = GlobalKey<FormState>();

Form(
    key: formKey,
    child: Column(children: <Widget>[
      TextFormField(
        autocorrect: false,
        decoration: InputDecoration(labelText: "Text:"),
        onSaved: (str) => _text = str,
      )
    ]));

然后只需将_text变量传递到参数中作为键值即可。

答案 2 :(得分:0)

尝试在InputDecoration中修改contentPadding。例如:

contentPadding: EdgeInsets.symmetric(horizontal: 2, vertical: 0)