如何调整组合框的下拉列表以及组合框?

时间:2010-05-17 19:54:12

标签: flex actionscript-3 actionscript flex3 combobox

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

问题:
通过AS调整组合框的大小时,下拉列表保持与第一次下降时相同的宽度。因此,用户在页面上放置组合框,单击向下箭头,查看选项,选择选项或再次单击向下箭头以关闭,调整下拉列表的宽度,单击向下箭头。现在下拉的宽度与原始宽度相同。 尝试过简单的事情,比如专门设置下拉列表的宽度并使显示列表无效,但它仍然无法正常工作。

例:
代码示例待定

3 个答案:

答案 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();
}