关注 ListView 的底部?扑

Posted

技术标签:

【中文标题】关注 ListView 的底部?扑【英文标题】:Focus the bottom of a ListView ? Flutter 【发布时间】:2020-02-06 19:50:53 【问题描述】:

如果我使用 listView.builder 将项目动态添加到 listView,我如何保持列表底部的焦点?就像如果列表已满,并且我添加了一个项目,我该怎么做才能使另一个上升并聚焦最后一个项目而不删除任何内容?

【问题讨论】:

这可以帮助你:***.com/questions/43485529/… 【参考方案1】:

您好,您可以使用jumpTo()animateTo() 方法向ScrollController 寻求帮助,如下所示,

首先创建实例

ScrollController controller = new ScrollController();

然后在您的列表视图中注册后,如下例所示

ListView.builder(
              itemBuilder: (context, index) => ListTile(
                title: Text("Item List"),
              ),
              controller: controller,
              itemCount: 50,
            ),

最后在添加新项目时调用jumTo() or animateTo()方法,或者当你想像下面这样进入底部时

controller.jumpTo(controller.position.maxScrollExtent);

【讨论】:

我注意到它只显示不是最后一个数字,而是最后一个数字(至少使用 animate 方法) 是的,正如@SimonB 所说,这显示在最后,而不是最后 @Bawantha 那么如何解决呢?【参考方案2】:

接受的答案是正确的,但这个答案也会很有用,

//控制器

ScrollController _scrollController = new ScrollController();

//将此控制器添加到列表中

ListView.builder(
      controller: _scrollController, //The Controller
      shrinkWrap: true,
      reverse: false,
      itemCount: snapshot.data.documents.length,
      itemBuilder: (context, index) 
      //Your Widgets
 )

//每次要滚动到列表底部时添加这个

_scrollController.animateTo(
        _scrollController.position.maxScrollExtent,
        curve: Curves.easeOut,
        duration: const Duration(milliseconds: 300),
);

【讨论】:

以上是关于关注 ListView 的底部?扑的主要内容,如果未能解决你的问题,请参考以下文章

Anroid(仿虎扑体育)ListView中数据按照时间日期分组(分类)

setState 方法重新加载列表视图。我怎样才能阻止它?扑

将视图放置在程序中 ListView 的底部

在 Xamarin Forms iOS 中出现 ListView 之前,如何将 ListView 滚动位置设置为底部?

Android ListView拉到顶/底部,像橡皮筋一样弹性回弹复位

将底部边距添加到 ListView 最后一个元素