Apache flex 如何调整组合框和组合框下拉列表的大小?

Apache flex 如何调整组合框和组合框下拉列表的大小?,apache-flex,actionscript-3,actionscript,flex3,combobox,Apache Flex,Actionscript 3,Actionscript,Flex3,Combobox,背景: 我正在做一些UI工作,允许用户通过编程在画布上添加和调整控件的大小 问题: 当通过调整组合框的大小时,下拉列表的宽度与第一次下拉时的宽度相同。因此,用户在页面上放置组合框,单击向下箭头,查看选项,选择一个选项或再次单击向下箭头关闭,调整下拉框的宽度,单击向下箭头。现在下拉列表的宽度与原来的相同。 我已经尝试过一些简单的事情,比如专门设置下拉列表的宽度和使显示列表无效,但仍然不起作用 示例: 代码示例挂起在将代码精简为示例时,我解决了问题。组合框具有dropdownWidth属性。我试图设

背景:
我正在做一些UI工作,允许用户通过编程在画布上添加和调整控件的大小

问题:
当通过调整组合框的大小时,下拉列表的宽度与第一次下拉时的宽度相同。因此,用户在页面上放置组合框,单击向下箭头,查看选项,选择一个选项或再次单击向下箭头关闭,调整下拉框的宽度,单击向下箭头。现在下拉列表的宽度与原来的相同。 我已经尝试过一些简单的事情,比如专门设置下拉列表的宽度和使显示列表无效,但仍然不起作用

示例:

代码示例挂起

在将代码精简为示例时,我解决了问题。组合框具有dropdownWidth属性。我试图设置myComboBox.dropdownWidth=newWidth,但不起作用(不完全确定原因,没有深入研究SDK)。但是,如果我将代码更改为
myComboBox.dropdown.width=newWidth
,它实际上会转到dropdown元素并直接重新调整它的大小,这是可行的。

comboBox.dropdown.width对我不起作用。我不得不使用

comboBox.dropdown.percentWidth=100


它似乎可以在不必在组合框中调用invalidateSize()

的情况下工作,覆盖
设置数据提供程序
并执行以下操作似乎可以工作,因为数据提供程序字段绑定到
collectionChange
事件


我很确定comboBox.dropdownWidth属性不会更改宽度“live”。但是,comboBox.dropdown.width应为:;这与您的体验一致。
myComboBox.dropdownWidth=newWidth
对我有效,而
myComboBox.dropdown.width=newWidth
对我无效。。。Flex3.6SDK
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();
}