【问题标题】:TextField input doubledTextField 输入翻倍
【发布时间】:2021-10-18 14:29:33
【问题描述】:

在 Windows 项目的 Flutter 桌面中,我在 statefulWidget 中有一个 TextField 小部件,并附加了一个控制器。

late TextEditingController searchController;

  @override
  void initState() {
    super.initState();
    searchController = TextEditingController();
  }

  @override
  void dispose() {
    searchController.dispose();
    super.dispose();
  }
TextField(
  keyboardType: TextInputType.text,
  controller: searchController,
  decoration: defaultTextFieldDecoration.copyWith(hintText: "Type to Search"),
  style: textFieldStyle,
  onChanged: (value) {},
),

现在,当我在文本字段中输入诸如“abc”之类的内容时,每个键都会像“aabbcc”一样输入两次,我不知道为什么。我已经多次使用 TextFields,但从未发生过。

我的键盘也不是问题,因为我可以毫无问题地输入它:D

编辑:这是重现此问题的完整示例。

import 'package:flutter/material.dart';

void main() {
  runApp(const MaterialApp(home: Main()));
}

class Main extends StatefulWidget {
  const Main({Key? key}) : super(key: key);

  @override
  _MainState createState() => _MainState();
}

class _MainState extends State<Main> {
  @override
  Widget build(BuildContext context) {
    return const Scaffold(
      body: Center(
        child: TextFieldTestWidget(),
      ),
    );
  }
}

class TextFieldTestWidget extends StatefulWidget {
  const TextFieldTestWidget({Key? key}) : super(key: key);

  @override
  _TextFieldTestWidgetState createState() => _TextFieldTestWidgetState();
}

class _TextFieldTestWidgetState extends State<TextFieldTestWidget> {
  TextEditingController controller = TextEditingController();
  @override
  void dispose() {
    controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return SizedBox(
      width: 300,
      height: 100,
      child: TextField(
        controller: controller,
      ),
    );
  }
}

编辑:添加图片

再次编辑:

发现它与初始文本值有关...我只是不明白究竟是什么。当我将 TextEditingController 更改为 TextEditingController(text:"") 时,它会以某种方式工作。我认为实例化 TextEditingControllers 在某种程度上被破坏了。

【问题讨论】:

  • 运行flutter clean,然后再试一次
  • @GNassro 没有帮助
  • 你的代码看起来很棒,你用的是什么版本的颤振?
  • @StewieGriffin(顺便说一句:D)提供的示例是我也遇到的完整代码。
  • 也许这是一个必须在github-flutter发布的问题

标签: flutter dart flutter-desktop


【解决方案1】:

beta 2.4.0-4.2.pre 升级 Flutter -> beta 2.5.0-5.1.pre 暂时修复了它。至少我的代码中没有错误:D

【讨论】:

    猜你喜欢
    • 2011-07-17
    • 2014-10-10
    • 1970-01-01
    • 2014-03-01
    • 2013-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-01
    相关资源
    最近更新 更多