下面是我的代码中的一段代码:
<mx:Panel id="recPanel" title="I have the following helpful recommendations for you:"
verticalScrollPolicy="off" width="100%" height="180">
<mx:List dataProvider="{recommendations}" wordWrap="true" variableRowHeight="true"
verticalScrollPolicy="auto" width="100%" height="100%" />
</mx:Panel>'recommendations‘dataProvider是一个字符串的ArrayCollection,它通常是和这个一样长的句子。通过如下所示设置variableRowHeight和wordWrap属性,如果句子太长而不能放在一行上,则一切正常-行展开,消息显示在两行上,或者偶尔显示在三行上。
在整个画布中分配给这个面板的空间意味着,如果“建议”的总文本大小超过六行,我需要整个列表滚动。这也工作得很好。问题是,当使用鼠标滚轮进行滚动时- Flex会同时滚动整个列表和鼠标悬停的单个项目。通常,这只会导致句子的后半部分可见。非程序员的朋友们,我要求看这篇文章时注意到了这一点,并告诉我这是一个问题。如果用户没有注意到双重滚动,并且只看到句子的一个片段,那么它将被认为是应用程序中的错误。
我已经尝试放入一个itemRenderer,既有插件的,也有组件的。如果渲染器关闭了veritcalScrollPolicy,则解决了项目内的滚动问题,但这意味着列表作为一个整体不会随滚轮一起滚动,只能使用滚动条。
我更倾向于找到一个两全其美的解决方案:允许鼠标滚轮的列表,但防止滚动其中的个别项目。欢迎任何想法。
发布于 2010-01-04 23:22:03
我会试着在关闭滚动策略的情况下使用你的项目渲染器,然后添加事件侦听器到你的列表中,向上和向下滚动滚轮,并设置垂直滚动位置+= 10在滚轮上,-=10在滚轮上(使用数字来看看哪个看起来是正确的。
我会给你更好的代码示例,但我的flex builder副本今天过期了,我正在等待它为我拿到许可证。
https://stackoverflow.com/questions/1983574
复制相似问题