我想让TextField,用户可以点击任何线,并从那里开始写作.所以我有了一个 idea ,就是做一个新的笔记,在任何一行的开头都已经有了这"\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个属性,try 了focusNode个属性,但我不明白.

推荐答案

您可以通过将文本中的位置设置为selection0来实现,如下所示:

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

这应该会将光标放在初始文本的开头.

Flutter相关问答推荐

文本未设置在集装箱摆动的中心

底部导航栏项目在抖动中不更改 colored颜色

如何在FiRestore中正确编写OR查询

如何在默认情况下隐藏appBar并在向下滚动时显示它- Flutter

在Flutter TextField中计算子字符串位置

你能go 掉Flutter 小部件测试中的样板吗?

Flex ListView用于可滚动和响应的页面

Flutter 文件拾取器Android SingleInstance模式它返回的文件路径为空

无法构建AndroidBundle 包或iOS等

flutter Listview构建器溢出

将自定义容器附加到屏幕底部

TextField 中的富文本并获取 RenderParagraph

NotifierProvider 每次更新都会重新构建并且值不更新

2023 年如何使用 youtube_explode_dart 包下载 URL?

没有为类型 'Widget' 定义运算符 '[]' .try 定义运算符[]

是否可以在 flutter 应用程序中使用 jetpack compose?

如何使用 riverpod_annotation 创建非自动处置提供程序?

在 flutter 中自定义 agora 视频通话 UI

Flutter:如何判断嵌套列表是否包含值

如何在行/列中扩展没有子级的容器 colored颜色 小部件?