Flutter TextFormField 在未聚焦时显示从开始位置溢出的文本

问题描述 投票:0回答:1

当我在 TextFormField A 中输入长文本并跳转到另一个小部件(如另一个 TextFormField)时,我的 TextFormField A 将光标位置维持在长文本的末尾。我希望当我取消小部件的焦点时,文本从起始位置出现。

情况

电子邮件字段未聚焦

我想要什么

我已经尝试过了

textEditingController.selection = TextSelection.collapsed(offset: 0);

但只有当我再次聚焦小部件时它才会生效,而不是在我取消聚焦它时生效(这就是我想要的)。

flutter
1个回答
0
投票

TextFormField
失去焦点时重置到起始位置时,您可以使用
FocusNode
TextEditingController
并使用
FocusNode
监听焦点变化。

  final _textController = TextEditingController();
  final _focusNode = FocusNode();

  @override
  void dispose() {
    _textController.dispose();
    _focusNode.dispose();
    super.dispose();
  }

您可以比较我从构建方法返回的代码:

Column(
        crossAxisAlignment: CrossAxisAlignment.start,
        children: [
          TextFormField(
            controller: _textController,
            focusNode: _focusNode,
            decoration: InputDecoration(
              labelText: 'Enter text',
            ),
          ),
          SizedBox(height: 20),
          ElevatedButton(
            onPressed: () {
              // Unfocus the TextFormField
              _focusNode.unfocus();
              // Clear the text and set cursor position to start
              _textController.clear();
            },
            child: Text('Reset Text'),
          ),
        ],
      ),
© www.soinside.com 2019 - 2024. All rights reserved.