背景:
我做了一些UI的工作,我允許用戶在畫布上編程方式添加和調整控制。如何隨組合框一起調整組合框的下拉列表?
問題:
當通過AS的下拉停留在相同的寬度,在第一次落下調整大小的組合框。因此用戶在頁面上放置組合框,單擊向下箭頭,查看選項,選擇選項或再次單擊向下箭頭關閉,調整下拉寬度,單擊向下箭頭。現在,下拉寬度與原始寬度相同。 已經嘗試了一些簡單的事情,例如專門設置下拉列表的寬度並使顯示列表無效,但仍然無效。
例子:
代碼示例掛起
背景:
我做了一些UI的工作,我允許用戶在畫布上編程方式添加和調整控制。如何隨組合框一起調整組合框的下拉列表?
問題:
當通過AS的下拉停留在相同的寬度,在第一次落下調整大小的組合框。因此用戶在頁面上放置組合框,單擊向下箭頭,查看選項,選擇選項或再次單擊向下箭頭關閉,調整下拉寬度,單擊向下箭頭。現在,下拉寬度與原始寬度相同。 已經嘗試了一些簡單的事情,例如專門設置下拉列表的寬度並使顯示列表無效,但仍然無效。
例子:
代碼示例掛起
雖然修剪我的代碼到我解決我的問題的例子。組合框具有dropdownWidth屬性。我試圖設置這個myComboBox.dropdownWidth = newWidth
,這不起作用(不完全確定爲什麼,沒有挖掘到SDK)。但是,如果我將我的代碼更改爲myComboBox.dropdown.width = newWidth
,它實際上會轉到下拉列表元素,並直接重新調整它的大小,以確保正常工作。
comboBox.dropdown.width不適用於我。我不得不使用
comboBox.dropdown.percentWidth = 100;
似乎無需調用invalidateSize()
在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();
}
我敢肯定的comboBox.dropdownWidth屬性不會改變寬度 「活」。然而,comboBox.dropdown.width應該;這與你所看到的一致。 – JeffryHouser 2010-05-17 21:04:48
'myComboBox.dropdownWidth = newWidth'確實爲我工作,而'myComboBox.dropdown.width = newWidth'沒有... Flex 3.6 sdk – Kukeltje 2016-10-28 19:23:31