我正在构建一个基于jscript的Windows 8 Metro应用程序。此应用程序的主屏幕是滚动“全景”视图,其中有几个列表视图显示应用程序状态的各个方面。在某些情况下,用户将在页面上选择一些导致导航到另一页面的内容(使用WinJS.Navigation.navigate方法。
当用户点击另一页上的后箭头时,它返回到主屏幕,我使用“scrollIntoView”将屏幕定位到导航发生前用户正在处理的部分。
不幸的是,这几乎不会导致正确定位视图。这似乎是随机的。我怀疑该页面尚未完成构建,并且滚动值是根据某个快照时间的状态设置的。
现在的问题是:
WinJS ListView对象是否会通知它们完全渲染和布局?或者这是页面就绪功能的工作吗?
感谢您的任何见解!
答案 0 :(得分:2)
并排放置多个列表视图是Not A Good Idea(TM)。我建议放置一个列表视图,并将您的内容放在分组数据源中以获取组。如果项目具有不同的模板,则可以使用自定义项目模板选择器来动态选择模板。
此外,为了确保列表视图滚动到正确的位置,您需要使用indexOfFirstVisible来设置名称所暗示的项目。