flutter - 在颤动中控制 listview.builder 中文本字段的滚动
问题描述
我TextFields
在一个ListView.builder
. 当用户提交时,该值被添加到valueList
.
List valueList = [];
ListView.builder(
itemBuilder: (context, index){
return Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
keyboardType: TextInputType.number,
onSubmitted: (value) {
valueList.add(value);
print(valueList);
},
),
);
}),
我想要它做的是,当用户点击提交按钮时,我希望滚动移动到下一个TextField
. 有FocusNode
。但我无法找到如何在ListView.builder
解决方案
只要您知道滚动多远,就可以controller
在您的位置上使用 a并为某个位置设置动画...ListView.builder
final ScrollController scrollcontroller = new Scrollcontroller();
final List valueList = [];
//...
ListView.builder(
controller: scrollcontroller,
itemBuilder: (context, index){
return Padding(
padding: const EdgeInsets.all(8.0),
child: TextField(
keyboardType: TextInputType.number,
onSubmitted: (value) {
valueList.add(value);
double height_of_textfield = 20;
// focus on next input then
controller.animateTo(index * height_of_textfield, duration: /* some duration */, curve: Curves.easeOutCubic);
},
),
);
}),
//...
如果你有一致的高度,这会很好用,否则你必须想办法计算滚动高度以动画到......