我想从sap.m.list创建一个类似于twitter的流,因此当我使用pulltorefresh控件获得更多数据时,我想用附加行更新列表,但不应该移动列表,然后隐藏,直到用户向下滚动列表。 这样做的任何标准方法,或者自定义CSS / JS建议的方法吗?
谢谢, 马特
答案 0 :(得分:1)
由于OpenUI5已经包含了令人敬畏的iScroll库,因此无需在此处下载到jQuery。 我刚刚为您设置了一个测试应用,请点击此处:https://github.com/js1972/ui5_pull_to_refresh。
克隆这个;检查自述;然后只需运行grunt serve
即可在默认浏览器中打开该应用。您可以使用Chrome开发工具来模拟iPhone或Android等。
我认为这就是您所追求的 - 它就像GMail移动应用程序一样。你下拉刷新项目,在刷新结束时仍然看着相同的项目,但现在可以向上滚动以查看新项目。
如果您有一千个项目,将会很有趣地看到性能... iScroll为您提供了许多可能有用的设置(UI5 SDK中未对此进行讨论)。
浏览器滚动要注意的一件事是绘画时间。如果浏览器没有100%完成绘画,那么iScroll无法计算它需要的所有元素尺寸,你会得到奇怪的结果 - 通常只是没有滚动。有时你只需要在setTimeout(scroll_stuff, 0)
中包装内容,就可以给浏览器一些时间。
希望这会有所帮助......
答案 1 :(得分:0)
虽然不是我所追求的答案,但是考虑以另一种方式做,并且假设您可以使用自动生成的Id,您需要根据行号计算,以下是一种蛮力的做法它(我从另一个SO问题中借用它并保持动画的乐趣 - Referenced SO Link):
var pOffset = $("#__item0-App--Main--MyList-76").position().top;
$("#App--Main--myPage-cont").animate({scrollTop: ( pOffset)}, 800);