在ListView.builder的末尾添加元素以移回Flutter的顶部?

时间:2020-11-02 10:19:37

标签: flutter

如何在Listview.builder中添加元素,以允许单击该元素并帮助用户返回列表顶部?

1 个答案:

答案 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,
      );
    }
  }
相关问题