如何在 AppMaker 中滚动列表?

How do you scroll a list in AppMaker?

我有一个列表小部件,每页有五行。当用户转到下一页时,我重新加载页面(通过使用新页码在数据源上执行 unload/load)并且工作正常。但是,列表保持滚动到底部。我怎样才能将列表滚动到顶部,这样用户就不必这样做了?

我尝试了在标准 HTML 中工作的方法,但它们在 AppMaker 中不起作用,而且我找不到任何关于如何执行此操作的文档。

感谢任何提示或指点。

您可以通过执行以下操作实现所需的行为:

  1. 在大纲中,找到 TablePanel 小部件和 select List:TableBody 小部件

2.In 属性 编辑器,滚动到 Events 部分并单击 onDataLoad 事件值.然后点击 自定义操作

  1. 输入此代码 var elem = widget.getElement(); elem.scrollTop = 0; 使其看起来像这样

  2. 确保更改已保存,然后预览您的应用,它应该可以运行。如果您需要其他东西或者它不起作用,请告诉我。

对我来说,Morfinismo 的回答没有用,但下面的答案有效: 在样式编辑器中为列表元素添加 CSS:

.app-pageName-nameOfTheListWidget {
    overflow-y: auto;
}

并在属性编辑器布局设置一个最大高度 .

我知道这是一个旧的 post,但对于未来的访问者,这是对我有用的方法 - 您需要将列表的索引设置为零。 App Maker 确保将最后选择的项目滚动到视图中,并在导航中保持这一点。

您可以通过传入在加载列表后运行的回调函数来执行此操作。对我来说,我从过滤列表的下拉小部件重新加载列表,所以在我添加的 onValueChange 事件中:

// Load datasource
widget.datasource.load(function() {
  // Set index to 1 to ensure we scroll to top of list
  app.datasources.YOURDATASOURCE.selectIndex(0);
});