flutter 添加新项目时,列表视图滚动到底部

mw3dktmi  于 2023-05-19  发布在  Flutter
关注(0)|答案(1)|浏览(201)

当我查看列表底部时,生成器不会滚动到新添加的项目。

messageList.insert(0, newMessage);

setState(() {});

SchedulerBinding.instance.addPostFrameCallback((_) {
   _messageListController.animateTo(
      _messageListController.position.minScrollExtent,
      duration: const Duration(milliseconds: 300),
     curve: Curves.easeOut);
});

我还在添加新项后使用addPostFrameCallback。只要我查看上面的项目(而不是在列表的末尾),它就可以工作。
请帮我找出解决这种情况的办法。多谢了

kmbjn2e3

kmbjn2e31#

我找到了保留的ListView.builder在新添加项目时不滚动到底部的原因:因为我不对每个项目使用ValueKey
解决方案:

ListView.builder(
  itemCount: items.length,
  itemBuilder: (_, index) => MyItem(key: ValueKey(item.id)
)

注意:您可以使用ValueKeyObjectKey。有什么区别?

  • ValueKey:比较值。
  • ObjectKey:比较地址。

相关问题