以下是我的代码中的剪辑:
<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>
'recommended'DataProvider是String的ArrayCollection,通常与此句一样长。通过设置如下所示的variableRowHeight和wordWrap属性,如果一个句子太长而无法放在一行上,一切正常 - 行展开并且消息显示在两行上,或偶尔显示三行。
在整个画布中为此面板分配的空间意味着如果“推荐”的总文本大小超过六行,我需要整个列表滚动。这也工作得很好。问题是当使用鼠标滚轮进行滚动时 - Flex会滚动整个列表和鼠标悬停的单个项目。通常这会导致只有句子的后半部分可见。非程序员朋友我要求看这个注意到这一点,并告诉我这是一个问题。如果用户没有注意到双滚动,并且只看到句子的一个片段,那么它将被视为应用程序中的错误。
我尝试过放入一个itemRenderer,包括drop-in和作为组件。如果渲染器关闭了veritcalScrollPolicy,它解决了项目中的滚动问题,但意味着整个列表不会使用滚轮滚动,只能使用滚动条。
我更愿意找到两全其美的解决方案:允许列表中的鼠标滚轮,但阻止滚动其中的各个项目。欢迎任何想法。
答案 0 :(得分:0)
我会尝试使用关闭滚动策略的项目渲染器,然后向上和向下添加滚动轮列表中的事件侦听器,并在向上滚动时设置垂直滚动位置+ = 10,在向下滚轮时设置= = 10 (玩数字看看看起来是对的。
我会给你更好的代码示例但是我的flex builder副本今天过期了,我正在等待IT来获取我的许可证。