2010-05-17 79 views
0

背景:
       我做了一些UI的工作,我允許用戶在畫布上編程方式添加和調整控制。如何隨組合框一起調整組合框的下拉列表?

問題:
       當通過AS的下拉停留在相同的寬度,在第一次落下調整大小的組合框。因此用戶在頁面上放置組合框,單擊向下箭頭,查看選項,選擇選項或再次單擊向下箭頭關閉,調整下拉寬度,單擊向下箭頭。現在,下拉寬度與原始寬度相同。 已經嘗試了一些簡單的事情,例如專門設置下拉列表的寬度並使顯示列表無效,但仍然無效。

例子:
       代碼示例掛起

回答

0

雖然修剪我的代碼到我解決我的問題的例子。組合框具有dropdownWidth屬性。我試圖設置這個myComboBox.dropdownWidth = newWidth,這不起作用(不完全確定爲什麼,沒有挖掘到SDK)。但是,如果我將我的代碼更改爲myComboBox.dropdown.width = newWidth,它實際上會轉到下拉列表元素,並直接重新調整它的大小,以確保正常工作。

+0

我敢肯定的comboBox.dropdownWidth屬性不會改變寬度 「活」。然而,comboBox.dropdown.width應該;這與你所看到的一致。 – JeffryHouser 2010-05-17 21:04:48

+0

'myComboBox.dropdownWidth = newWidth'確實爲我工作,而'myComboBox.dropdown.width = newWidth'沒有... Flex 3.6 sdk – Kukeltje 2016-10-28 19:23:31

0

comboBox.dropdown.width不適用於我。我不得不使用

comboBox.dropdown.percentWidth = 100;

似乎無需調用invalidateSize()

0

在ComboBox,覆蓋set 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(); 
}