我有一个这样的组合框:
<mx:ComboBox dataProvider="{someArrayCollection}" />
但是当someArrayCollection
的内容发生变化时,它会使组合框太小:
如何欺骗组合框自动调整大小以适应最大项目的标签?
答案 0 :(得分:4)
问题是ComboBox
在invalidateSize()
发送dataProvider
事件后COLLECTION_CHANGE
没有myComboBox.invalidateSize()
。
拉梅。
当dataProvider
发送COLLECTION_CHANGE
时,可以通过调用{{1}}来解决此问题。
答案 1 :(得分:-1)
基本上,您只需遍历dataProvider,测量每个项目标签的宽度,并跟踪最大的标签。
我把它构建到Flextras AutoCompletComboBox中。有一个名为expandDropDownToContent的属性可以扩展下拉列表,因此它没有滚动条,但它本身不会扩展提示符部分。
Spark DropDownList有一个名为typicalItem的属性,它执行类似的操作。奇怪的是,此时似乎没有在DropDownList中定义属性。
12/23/3011更新
由于这种情况不断下降,我想明确说明。当MX / Halo ComboBox自动调整大小时,它仅基于下拉列表中显示的初始项目进行调整。如果不循环遍历dataProvider中的所有项以确定ComboBox / DropDown的正确大小,则无论是否在dataProvider中的项发生更改时调用invalidateSize(),项都可能会被截断。