背景:
我正在做一些UI工作,我允许用户以编程方式在画布上添加和调整控件大小。
问题:
通过AS调整组合框的大小时,下拉列表保持与第一次下降时相同的宽度。因此,用户在页面上放置组合框,单击向下箭头,查看选项,选择选项或再次单击向下箭头以关闭,调整下拉列表的宽度,单击向下箭头。现在下拉的宽度与原始宽度相同。
尝试过简单的事情,比如专门设置下拉列表的宽度并使显示列表无效,但它仍然无法正常工作。
例:
代码示例待定
答案 0 :(得分:0)
在将我的代码修改为示例时,我解决了我的问题。组合框具有dropdownWidth属性。我试图设置这个myComboBox.dropdownWidth = newWidth
,这不起作用(不完全确定为什么,没有深入研究SDK)。但是,如果我将代码更改为myComboBox.dropdown.width = newWidth
,它实际上会转到下拉元素并直接重新调整大小,这确实有效。
答案 1 :(得分:0)
comboBox.dropdown.width对我不起作用。我不得不使用
comboBox.dropdown.percentWidth = 100;
似乎无需调用invalidateSize()
即可工作答案 2 :(得分:0)
在ComboBox中,覆盖set dataProvider
并执行以下操作似乎有效,因为dataProvider字段绑定到collectionChange
事件。
ComboBox.calculatePreferredSizeFromData(count:int):Object
override public function set dataProvider(value:Object):void {
super.dataProvider = value;
var size:Object = calculatePreferredSizeFromData(dataProvider.length);
this.dropdownWidth = size.width;
this.dropdown.width = this.dropdownWidth;
this.invalidateSize();
}