我有一个简单的列表和后台刷新协议。如何保持滚动dataProvider刷新/更新/更改列表?
当列表向下滚动时,刷新会将其滚动回顶部。我想阻止这一点。
我试图捕捉COLLECTION_CHANGE事件和
validateNow(); // try to get the component to reset to the new data
list.ensureIndexIsVisible(previousIndex); // actually, I search for the previous data id in the IList, but that's not important
失败的原因是名单的变化(在DataGroup.commitProperties)后自行复位。
我讨厌使用Timer,ENTER_FRAME或callLater(),但我似乎无法找到一种方法。
我可以看到的唯一的其他替代方法是对子列进行子分类,以便它可以捕获皮肤中的DataGroup正在抛出的dataProviderChanged事件。
任何想法?
集合的任何更新都可能会改变dataProvider的长度,因此保持相同的滚动位置并不总是实用。你正在更换dataProvider,还是只通过添加项目/删除项目/添加过滤器来更新它?你可以尝试设置保存/重置veritcalScrollPosition。我不确定这是否会导致视觉“凹凸”。 – JeffryHouser
为什么你在第一个地方刷新?你在做什么收藏? –
你看过添加一个事件监听器到像updateComplete的东西吗?我以前通过继承List和重写'set scrollPosition'来解决这类问题。 –