2012-10-12 89 views
0

我正在爲列表創建自定義項目渲染器,以便可以使用多個StyleTextField來創建多列數據。Flex 4.5 Mobile - 在自定義項目渲染器中設置StyleableTextField的寬度

我正在處理MXML和Actionscript的混合(因爲StyleableTextField只能通過Actionscript創建)。

但是我有問題得到寬度排列。我使用的設置寬度的ActionScript如下:

var id:StyleableTextField = StyleableTextField(createInFontContext(StyleableTextField));     
id.width = (itemContainer.width * 30/100); 
id.htmlText = "Text Here"; 

var desc:StyleableTextField = StyleableTextField(createInFontContext(StyleableTextField));    
desc.width = (itemContainer.width * 70/100); 
desc.htmlText = "Much longer text description goes here"; 

正如你可以看到我正在嘗試設置基礎上,它的寬度寬的集裝箱(如下圖所示)。

我也嘗試設置percentWidth和顯式寬度,但列仍然有不同的寬度。

我的MXML看起來是這樣的:

<s:Group width="100%"> 
    <s:HGroup id="itemContainer" verticalAlign="middle" paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10" width="100%" gap="10"> 
    </s:HGroup> 
</s:Group> 

id列特別似乎不願意去,比它的寬度傾向任何較大。可以是多行的desc列效果更好,但仍不會在所有行上保持單一寬度。

UPDATE:

試圖亞歷克斯曾建議我現在有以下ActionScript代碼。雖然它似乎沒有太大的作用。

override protected function updateDisplayList(unscaledWidth : Number, unscaledHeight : Number) : void { 
if (idno == null) 
{ 
idno = createDisplay(data.idno); 
} 
super.updateDisplayList(unscaledWidth, unscaledHeight); 
idno.width = (unscaledWidth * 30/100); 
desc.width = (unscaledWidth * 70/100); 
trace (idno.width); 
trace (desc.width); 
} 

protected function createDisplay(value:String):StyleableTextField 
{ 
var field:StyleableTextField = StyleableTextField(createInFontContext(StyleableTextField)); 
field.text = value; 
itemContainer.addElement(field); 
return field; 
} 

回答

0

你試過:

override protected function updateDisplayList(unscaledWidth : Number, unscaledHeight : Number) : void { 
    super.updateDisplayList(unscaledWidth, unscaledHeight); 
    id.width = (unscaledWidth * 30/100); 
    desc.width = (unscaledWidth * 70/100); 
} 
+0

我添加了一個編輯我原來的職位,顯示我是如何實現你的建議的功能,但它沒有視覺衝擊力。軌跡顯示了它應該使用的寬度,但它們是正確的,但屏幕沒有反映出來。 – Rjs37

+0

經過一些更多的實驗(在我的文本框中添加一些邊框)之後,我發現寬度實際上正在改變,但是我的hgroup中的項目不會自動重新定位,即使我已經嘗試將autoLayout設置爲true。 – Rjs37

相關問題