flutter 抖动:点击Android模拟器中的复选标记/回车按钮后,文本从TextFormField中消失

e0bqpujr  于 2023-01-21  发布在  Flutter
关注(0)|答案(1)|浏览(94)

我有这个Flutter移动的应用程序,我已经工作了几天了。
我建立了登录/注册页面和一个虚拟主页,并添加了身份验证支持。
然后我注意到当我点击android模拟器示例上的checkmark/enter按钮时,我的一些textformfields会自动删除里面的文本。
但是每当我点击其他任何东西,比如另一个表单字段或者空白屏幕时,文本都不会消失。
编辑:它从我的文本表单域中删除文本。
以下是其中一个字段的代码:

final name_label = Text(
      '    First Name:',
      style: TextStyle(color: Colors.black54),
    );

    final name = TextFormField(
      validator: (val) {
        if (val == '') {
          return 'This Field Cannot Be Empty';
        } else if (val!.length > 20) {
          return "This Field Can't Have more than 20 characters";
        } else {
          return null;
        }
      },
      onFieldSubmitted: (value) {
        first_name_controller.text = value;
      },
      controller: first_name_controller,
      keyboardType: TextInputType.name,
      autofocus: false,
      decoration: InputDecoration(
        hintText: 'Joe',
        contentPadding: EdgeInsets.fromLTRB(20.0, 10.0, 20.0, 10.0),
        border: OutlineInputBorder(borderRadius: BorderRadius.circular(32.0)),
      ),
    );```
sy5wg1nm

sy5wg1nm1#

在生成时将TextEditingController示例而不是示例放入类属性中(生成方法)。

class _LoginPageState extends State<LoginPage> {
  @override
  final AuthService _login_checker = AuthService();
  final _formkey = GlobalKey<FormState>();
  final login_email_controller = TextEditingController();
  final login_password_controller = TextEditingController();

  Widget build(BuildContext context) {
    final logo = Hero(
      tag: 'hero',
      child: CircleAvatar(
        backgroundColor: Color.fromARGB(0, 180, 32, 32),
        radius: 48.0,
        child: Image.asset(
            'lib/images/png-clipart-hamburger-button-computer-icons-marmon-keystone-canada-menu-red-sea.png'),
      ),
    );

相关问题