物理键盘不适用于桌面 Flutter 中的 TextFormField

问题描述 投票:0回答:1

最近我开始在桌面上制作一个管理面板,我使用

TextFormField
来接受用户的输入,但不幸的是,键盘无法在文本字段内写入数据,我在 Google 上搜索并没有找到任何解决方案,请问有人可以帮助我吗?

以下是我在项目中使用的一些文本字段:

Container(
    width: 200,
    margin: EdgeInsets.all(15),
    child: TextFormField(
      onChanged: (value) {
        referalName.text = value;
      },
      validator: (value) {
        if (value!.isEmpty) {
          return 'Please Enter Referal Code';
        }
        return null;
      },
      controller: referalName,
      style: TextStyle(
        fontSize: 24,
        color: Colors.blue,
        fontWeight: FontWeight.w600,
      ),
      decoration: InputDecoration(
        focusColor: Colors.white,
        //add prefix icon
        prefixIcon: Icon(
          Icons.person_outline_rounded,
          color: Colors.grey,
        ),

        border: OutlineInputBorder(
          borderRadius: BorderRadius.circular(10.0),
        ),

        focusedBorder: OutlineInputBorder(
          borderSide: const BorderSide(
              color: Colors.blue, width: 1.0),
          borderRadius: BorderRadius.circular(10.0),
        ),
        fillColor: Colors.grey,

        hintText: "Referal Name",

        //make hint text
        hintStyle: TextStyle(
          color: Colors.grey,
          fontSize: 16,
          fontFamily: "verdana_regular",
          fontWeight: FontWeight.w400,
        ),

        //create lable
        labelText: 'Enter Referal Name',
        //lable style
        labelStyle: TextStyle(
          color: Colors.grey,
          fontSize: 16,
          fontFamily: "verdana_regular",
          fontWeight: FontWeight.w400,
        ),
      ),
    ),
  ),
flutter
1个回答
0
投票

我已经测试了你的代码,除了一件事之外,它对我来说工作得很好。每次输入字段中的文本发生变化时,您都会重置引用控制器的值。这导致了意外错误。尝试删除或注释掉 onChanged 函数的代码。

onChanged: (value) {
  // referalName.text = value;
},

查看此链接以获取更多信息:
https://api.flutter.dev/flutter/material/TextField/onChanged.html

© www.soinside.com 2019 - 2024. All rights reserved.