【问题标题】:Is there a way to disable the scrollbar / list bounce effect in flex 4.5 (mobile)?有没有办法在 flex 4.5 (mobile) 中禁用滚动条/列表反弹效果?
【发布时间】:2011-05-17 03:12:34
【问题描述】:

我正在尝试制作我自己的组件,该组件的行为类似于列表并支持无限滚动(一维:垂直或水平) - 双向。例如,一个垂直布局的列表,用户可以永远向上或向下滚动 - 无需点击“最后一个”或“第一个”项目。一个很好的用途:将每个月显示为列表项的日历。

无论如何,有很多事情需要克服。我认为首先是禁用滚动条的反弹效果(在最新的 Flex 4.5(移动)SDK 中引入)。

如果我可以禁用弹跳效果,我猜我可以根据需要向列表添加/删除项目,它会无限滚动。

有什么想法吗?

奎师那

【问题讨论】:

    标签: apache-flex


    【解决方案1】:

    就个人而言,无限列表意味着对核心 List 组件进行大量返工。逆向工程需要大量工作,而且您可能会碰壁。我认为您想要做的是从头开始创建一个组件并扩展SkinnableContainer

    从现在开始,您需要决定如何实现无限列表以及用户交互是什么,然后需要实现适当的实践并重用您的项目渲染器。

    【讨论】:

    • 感谢您“重新”回答这个问题。我知道你已经在我的另一篇文章中回复了。我开发了一个从 SkinnableDataContainer 扩展而来的自定义组件,并从 Flex 滚动条实现中复制了很多滚动代码。我让它工作了——但我需要稍微调整一下。也许我会发布另一个问题。
    【解决方案2】:

    根据我的经验,您可以通过将属性更改事件添加到列表数据组的视口来简单地实现列表组件的延迟加载

    list.dataGroup.addEventListener( PropertyChangeEvent.PROPERTY_CHANGE, onScrollPropertyChangeHandler );
    

    然后在事件中,监听垂直滚动位置

    if ( event.property == "verticalScrollPosition" ){
        var listHeight:Number = itemList.height;
        var curAnchorPoint:Number = event.newValue + listHeight; 
        var bottomPositionToLoad:Number = 200; // Start loading when the list nearly reach the bottom minus 200
        var anchorToLoadNextPage:Number = itemList.dataGroup.contentHeight - bottomPositionToLoad;
    
        if(curAnchorPoint >= anchorToLoadNextPage){
        loadNextPage(); 
        }
    }
    

    当 loadNextPage() 运行时,记得移除属性更改事件,这样 loadNextPage 就不会被多次调用。

    【讨论】:

      猜你喜欢
      • 2018-11-10
      • 1970-01-01
      • 2018-11-17
      • 2015-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      相关资源
      最近更新 更多