我有一个将文本追加到TextField的定期函数。
为此,我设置了TextEditingController
并调用:controller.text += someText
。
但是,当滚动TextField并添加文本时,TextField会自动滚动回顶部,而刚附加的文本会消失。
有什么办法可以改变滚动行为?
答案 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,),))
),