代码之家  ›  专栏  ›  技术社区  ›  Chris G.

通过生成器添加后如何上下移动ListView

  •  0
  • Chris G.  · 技术社区  · 6 年前

    当添加带有builder和“item builder:…”的项时,如何自动滚动到顶部或按钮-取决于“reverse”。

    以下给出了一个没有描述的错误:

    return ListView.builder(
                      reverse: true,
                      controller: _scrollController,
                      shrinkWrap: true,
                      itemCount: list.length,
                      itemBuilder: (context, index) {
                        return ListTile(
                          title: Text(list[index]),
                        );
                      },
                    ).controller.animateTo(0.5, duration: const Duration(milliseconds: 100), curve: null);
    
    1 回复  |  直到 6 年前
        1
  •  2
  •   salihgueler    6 年前

    因为你打电话给 animateTo 方法结束时,此返回语句将不返回小部件。我假设您将此代码段指定为小部件或子部件,它将给您一个错误。

    为了解决这个问题,我可以提出类似的建议。

               // Assign your ListView to a variable and return that variable.
               ListView list = ListView.builder(
                  reverse: true,
                  controller: _scrollController,
                  shrinkWrap: true,
                  itemCount: list.length,
                  itemBuilder: (context, index) {
                    return ListTile(
                      title: Text(list[index]),
                    );
                  },
                );
    
                //Animate it afterward. Preferably inside a button or listener.
                list.controller.animateTo(0.5, duration: const Duration(milliseconds: 100), curve: null);