滚动Flutter的多行TextField结束

时间:2019-12-20 22:48:35

标签: flutter

我有一个将文本追加到TextField的定期函数。 为此,我设置了TextEditingController并调用:controller.text += someText

但是,当滚动TextField并添加文本时,TextField会自动滚动回顶部,而刚附加的文本会消失。

有什么办法可以改变滚动行为?

2 个答案:

答案 0 :(得分:0)

使用TextEditingController设置选择。 这样可以防止TextField每次重新构建和/或将光标移动到TextField的开头。

   TextField(
    controller: textEditController,
    onChanged: (content) {
      textEditController..text = someText
                        ..selection = TextSelection.collapsed(offset:  textEditController.text.length);
      },
    )

答案 1 :(得分:0)

我不知道今天这是否可以为您服务,但如果其他人看到该出版物我希望有所帮助,我会说我使用 SingleChildScrollView() 执行此操作并将 reverse 属性设置为true。我不得不说我不使用 TexField(),你使用 Text(),但它表现良好,每次文本自动增加一行时,SingleChildScrollView() 的反向属性会导致它向下滚动并始终看到正在写入的最后一件事。

这是我如何在代码中执行此操作的一个小示例:

 Container(
            alignment: Alignment.bottomRight,
            height: size.height*0.044,
            child: SingleChildScrollView(reverse: true,child: Text(valorOperacion1, style: GoogleFonts.exo(color: tema.hintColor, fontSize: 18.0.sp, fontWeight: FontWeight.w600,),))
          ),