Search code examples
fluttertext-cursor

how to set cursor position at the end of the value in flutter in textfield?


I want to add ,00 at the end of the value of the textfield.

It works well in iOS device, but in android cursor moves to starting point of the value in textfield. As a result, I'm unable to add ,00.


Solution

  • I've been having the same problem with setting a TextEditingController and this is what worked for me.

    controller.text = someString;
    controller.selection = TextSelection.fromPosition(TextPosition(offset: controller.text.length));
    

    TextSelection.fromPosition() does the following (from the documentation):

    Creates a collapsed selection at the given text position. A collapsed selection starts and ends at the same offset, which means it contains zero characters but instead serves as an insertion point in the text.

    Edit - another version, which is a bit shorter and suggested by others here:

    controller.text = someString;
    controller.selection =
              TextSelection.collapsed(offset: controller.text.length);