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

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

【问题讨论】:

标签: android ios flutter dart


【解决方案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),
);

【讨论】:

    猜你喜欢
    • 2020-06-27
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 2016-11-22
    • 2019-05-27
    • 2021-03-31
    • 2013-08-19
    • 2018-02-27
    相关资源
    最近更新 更多