flutter 如何在TextField中已经有文本的第一行进行自动对焦?

taor4pac  于 2023-08-07  发布在  Flutter
关注(0)|答案(1)|浏览(148)

我想做TextField,用户可以点击任何一行,并从那里开始写作。所以我有一个想法,只是做一个新的笔记,只是已经有这些"\n"在任何行的开始,但现在我不知道如何设置自动对焦在第一行。
photo of my note where autofocus focus on last sign

class NewNoteBodyState extends State<NewNoteBody> {
  final myController = TextEditingController();
  // late FocusNode myFocusNode;

  @override
  void initState() {
    super.initState();
    widget.controller.text = widget.controller.text;
    widget.controller.text = "\n\n\n\n\n\n\n\n\n\n\n\n\n\n";
    // myFocusNode = FocusNode();
  }

  // @override
  // void dispose() {
  //   super.dispose();
  //   myFocusNode.dispose();
  // }

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.symmetric(vertical: 0, horizontal: 10),
      child: TextField(
        expands: true,
        // focusNode: myFocusNode,  
        autofocus: true,
        controller: widget.controller,
        maxLines: null,
        decoration: const InputDecoration(
          border: InputBorder.none,
        ),
      ),
    );
  }
}

字符串
我看了TextField的属性,并尝试了focusNode的一些东西,但我不明白。

5uzkadbs

5uzkadbs1#

您可以通过在文本中设置selection0的位置来实现这一点,如下所示:

widget.controller.selection = TextSelection.fromPosition(TextPosition(offset: 0));

字符串
这将把光标放在初始文本的开头。

相关问题