假设你要使用<List>,并想在当它刚被创建的时候就把滚动条的位置设定成一些特定值。也许你曾这样想过,在使用<List>作为导航时,滚动到用户之前停留的位置。
那么你要怎么实现呢?这个问题让我如坐针毡,我尝试过,但一无所获:
•List –creationComplete–失败
•List –updateComplete–失败
•因为没有布局方面的事件,所以还是失败
我设置了一段程序,启动一个计时器,等待大概33毫秒以后设置滚动条的位置。虽然麻烦,但这种办法运转良好。
最近又碰到了这个问题,在@dimitri_k的帮助下,才找到解决这个问题的正确方法,这个方法要更加的简单。就是在<Lists>的滚动条上设置一个监听,下面就是在creationComplete里加的监听代码:
myList.scroller.addEventListener(FlexEvent.UPDATE_COMPLETE, onScrollerComplete );
在onScrollComplete里的代码如下:
private function onScrollerComplete( e:FlexEvent ):void {
ribbonListLayout.horizontalScrollPosition = TRON.ribbonScrollPosition;
ribbonList.scroller.removeEventListener(FlexEvent.UPDATE_COMPLETE, onScrollerComplete );
}
在监听执行一次以后一定要将它移除掉,不然它就会被再次触发,并会在用户滚动滚轮的时候重新定位到原来的位置。
Adobe的两位Flex SDK工程师在Flexponential里也提供了类似的解决方案:保存Flex移动应用程序界面里的滚动条位置
那么你要怎么实现呢?这个问题让我如坐针毡,我尝试过,但一无所获:
•List –creationComplete–失败
•List –updateComplete–失败
•因为没有布局方面的事件,所以还是失败
我设置了一段程序,启动一个计时器,等待大概33毫秒以后设置滚动条的位置。虽然麻烦,但这种办法运转良好。
最近又碰到了这个问题,在@dimitri_k的帮助下,才找到解决这个问题的正确方法,这个方法要更加的简单。就是在<Lists>的滚动条上设置一个监听,下面就是在creationComplete里加的监听代码:
myList.scroller.addEventListener(FlexEvent.UPDATE_COMPLETE, onScrollerComplete );
在onScrollComplete里的代码如下:
private function onScrollerComplete( e:FlexEvent ):void {
ribbonListLayout.horizontalScrollPosition = TRON.ribbonScrollPosition;
ribbonList.scroller.removeEventListener(FlexEvent.UPDATE_COMPLETE, onScrollerComplete );
}
在监听执行一次以后一定要将它移除掉,不然它就会被再次触发,并会在用户滚动滚轮的时候重新定位到原来的位置。
Adobe的两位Flex SDK工程师在Flexponential里也提供了类似的解决方案:保存Flex移动应用程序界面里的滚动条位置