1

In a Flutter desktop for Windows project I have a TextField widget in a statefulWidget with a controller attached to it.

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) {},
),

Now when I type something into the textfield like "abc" every key gets input twice like "aabbcc" and I can't figure out why. I have used TextFields many times and that never happended.

It is also not a problem with my keyboard since I can type this without problems :D

Edit: Here is a full example to reproduce this problem.

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,
      ),
    );
  }
}

Edit: Added Image Result of the Example

Edit again:

Found that it has something to do with the initial text value... I just dont't get what exactly. When i change the TextEditingController to TextEditingController(text:"") it works somehow. I think instancing TextEditingControllers is somehow broken.

MindStudio
  • 706
  • 1
  • 4
  • 13

1 Answers1

0

Upgrading Flutter from beta 2.4.0-4.2.pre -> beta 2.5.0-5.1.pre fixed it for now. At least it wasn't an error in my code :D

MindStudio
  • 706
  • 1
  • 4
  • 13