如何在Listview.builder中添加元素,以允许单击该元素并帮助用户返回列表顶部?
答案 0 :(得分:1)
将滚动控制器传递到ListView.builder
,然后向项目计数添加一个,该计数用于将“返回顶部”按钮添加为最后一个项目。然后,当用户点击列表的最后一项时,可以使用listView控制器将列表滚动到顶部。
@override
Widget build(BuildContext context) {
return Scaffold(
body: ListView.builder(
controller: _controller,
itemCount: items.length + 1,
itemBuilder: (context, index) => (index != items.length)
? ListTile(title: Text(items[index]))
: ListTile(
leading: IconButton(
icon: Icon(Icons.keyboard_arrow_up),
onPressed: _navigateToTop),
),
),
);
}
void _navigateToTop() {
final Duration duration = Duration(milliseconds: 400);
final Curve curve = Curves.ease;
if (_controller.hasClients) {
var scrollPosition = this._controller.position;
scrollPosition.animateTo(
0,
duration: duration,
curve: curve,
);
}
}