我正在使用Spark DropDownlist组件。我想保持父组件的大小(所选项目显示的位置)很小但是当用户尝试选择项目时,显示带有我想要的选项的框要大,以便它包含所有元素,如果一个元素大于它仍然适合的父组件的大小,用户将不必进行水平滚动。 我尝试使用具有不同宽度的itemrenderer,但它在选项上引入水平滚动。如果我禁用父组件上的水平滚动(即s:dropdownlist),那么显示的选项是cutoff,我的意思是一些文本没有显示。 能否为此建议一个可能的解决方案?
答案 0 :(得分:1)
我自己就修好了。
基本上我为下拉列表创建了一个风俗,在自定义列表中我为PopupAnchor组件指定了这个属性popupWidthMatchesAnchorWidth =“false”。然后我创建了一个itemrenderer,其宽度是我需要的并且有效。
注意:我根据spark downdownlist的现有sking创建了dropdownlist的自定义外观,并且只是修改了这个属性。
答案 1 :(得分:0)
我不知道它是否重要,但您可以将解决方案置于开放事件中,如此,
<dropdown open="event.currentTarget.skin.popUp.popUpWidthMatchesAnchorWidth = false;"/>
没有创造皮肤。如果您尝试在创建完成时调用它,则尚未创建弹出窗口,您将收到错误消息。我注意到下拉列表更新时出现轻微闪烁。但这是一个调试版本,它非常轻微,在发布版本中可能并不明显。
附录:毕竟我正在使用皮肤,因为内容是动态变化的,它可能小于下拉。所以我注意到当popUpWidthMatchesAnchorWidth设置为false时,弹出宽度默认为140或类似的东西。为了解决这个问题,我在列表的宽度上添加了一个绑定,因此弹出窗口始终至少与列表一样宽,并在需要时增大。为此,请将minWidth属性添加到下拉皮肤的下拉列表中,如下所示:
<s:Group id="dropDown" maxHeight="184" minHeight="22" minWidth="{hostComponent.width}">