在初始化时设置list滚动条的位置

假设你要使用<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移动应用程序界面里的滚动条位置 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值