如何在ListView.builder的末尾添加一个元素以移回顶部?

Tiz*_*Dev 4 flutter

如何在 a 的末尾添加一个元素Listview.builder,允许用户单击它并让他返回列表顶部?

RaS*_*Sha 11

将滚动控制器传递给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,
      );
    }
  }
Run Code Online (Sandbox Code Playgroud)