[英]controlling scroll of textfield in listview.builder in flutter
我在ListView.builder
中创建了TextFields
。 当用户提交时,该值被添加到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
中实现它
您可以在ListView.builder
上使用controller
并动画到 position,前提是您知道滚动多远...
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);
},
),
);
}),
//...
如果你有一致的高度,这会很好用,否则你必须想办法计算滚动高度以动画到......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.