组件 VirtualList,以编程方式滚动到列表末尾

问题描述 投票:0回答:1

页面中包含一个 VirtualList,如示例页面中所示

VirtualList<Person> list = new VirtualList<>();
list.setItems(people);
list.setRenderer(personCardRenderer);
add(list);

列表本身包含许多项目,并且项目将定期添加到列表的末尾。我最初想显示列表的最后一项。

我找不到 API 来滚动到特定索引或列表末尾。尝试通过 Javascript 滚动均未成功。 是否存在针对此问题的解决方案,或者(非常快的)VirtualList 是正确的组件吗?

vaadin vaadin-flow
1个回答
3
投票

查看元素documentation,有一个方法,

scrollToIndex
。查看Java API文档,没有Java API可以调用此方法。

你仍然可以这样称呼它:

list.getElement().callJsFunction("scrollToIndex", INDEX);

如果您打算经常这样做,请创建一个实用方法,或者更好的是,扩展

VirtualList
并使用您的类,例如:

public class MyVirtualList<T> extends VirtualList<T> {
  ...constructors

  // Could just return `void`.
  public PendingJavaScriptResult scrollToIndex(int index) {
    return getElement().callJsFunction("scrollToIndex", index);
  }
}

我报告了

scrollToIndex
缺少 Java API,并打开了 PR:https://github.com/vaadin/flow-components/pull/4451.

© www.soinside.com 2019 - 2024. All rights reserved.