2011-06-29 39 views
2

在那我有一個設計規模100%的網頁窗口Flex項目,我有一個火花列表。我有一個簡單的itemrenderer,它接收數據並顯示名稱和消息。試想一下它就像一個簡單的即時通訊顯示器。問題是,我msg_txt標籤我想這就是父列表的寬度,這就是抱着它,給它的寬度。如何在液體佈局中的sparklist中爲itemrenderer設置標籤寬度?

我試着將horizo​​ntalScrollPolicy設置爲off,同時嘗試了width =「{this.parent.parent.width}」(以及this.parent.width)來渲染項目渲染器中的spark標籤。

,並在標籤中我嘗試了一些東西像左=「0」右=「0」 maxWidth =「{this.width}」,但沒有確實的伎倆。

我怎樣才能讓這個標籤有列表的最大寬度多數民衆贊成拿着它,並確保它會調整如果瀏覽器的變化和列表尺寸的大小而變化?

繼承人的名單:

<s:List id="chat_content" width="100%" height="100%" 
       alternatingItemColors="[#EEEEEE,#E6E6E6]" contentBackgroundColor="#EEEEEE" 
       horizontalScrollPolicy="off" itemRenderer="renderers.ActiveChatItemRenderer"> 
     </s:List> 

繼承人的itemRenderer:

<?xml version="1.0" encoding="utf-8"?> 
<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark"> 

    <fx:Script> 
     <![CDATA[ 
      import mx.core.FlexGlobals; 
      import mx.events.FlexEvent; 

      import spark.components.List; 

      override public function set data(value:Object):void { 
       super.data = value; 
       if (data == null) 
        return; 

       if(data.systemMsg) 
       { 

       } 
       if(data.name) 
       { 
        name_label.text=data.name; 
       } 
       if(data.icon) 
       { 

       } 
       if(data.msg) 
       { 
        msg_txt.text=data.msg; 
       } 




      } 





     ]]> 
    </fx:Script> 

    <s:states> 
     <s:State name="normal" /> 
     <s:State name="hovered" /> 
     <s:State name="selected" /> 
    </s:states> 

    <s:HGroup id="container" horizontalAlign="left" verticalAlign="top" paddingTop="10" paddingBottom="10"> 
     <s:VGroup horizontalAlign="center" verticalAlign="middle" 
        width="100"> 
      <s:Label id="name_label" fontWeight="bold" text="Name: " 
        fontSize="18"/> 
     </s:VGroup> 
     <s:Label id="msg_txt" text="msg text here" width="{this.parent.parent.width}"/> 


    </s:HGroup> 

</s:ItemRenderer> 

回答

3

你有沒有試着用percentWidthpercentHeight編程一次的itemRenderer已經創建(creationComplete)?

我還沒有明年受審:

<s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009" 
       xmlns:s="library://ns.adobe.com/flex/spark" width="100%" height="100%"> 
+0

就是這樣!謝謝! (在的ItemRenderer聲明將WIDTH = 「100%」 HEIGHT = 「100%」) – brybam

+0

我不知道爲什麼這個工程。確定孩子的大小總是由父母決定;在這種情況下,List會對渲染器進行尺寸調整。我認爲itemRenderer的大小始終是List類寬度的100%。 (減號滾動條,填充和其他類似的值) – JeffryHouser

0

上itemRenderer的孩子們設置的百分比width屬性:

<s:HGroup id="container" horizontalAlign="left" verticalAlign="top" paddingTop="10" paddingBottom="10" width="100%"> 
    <s:VGroup horizontalAlign="center" verticalAlign="middle" 
       width="100"> 
     <s:Label id="name_label" fontWeight="bold" text="Name: " 
       fontSize="18" width="100%"/> 
    </s:VGroup> 
    <s:Label id="msg_txt" text="msg text here" width="{this.parent.parent.width}" width="100%"/> 
</s:HGroup> 

我不清楚是什麼佈局你」重新追求。由於代碼中只有兩個標籤,你爲什麼需要兩組?如果你想顯示並排的兩個項目方面,你可以使用這樣的事情:

<s:Label id="name_label" fontWeight="bold" text="Name: " fontSize="18" width="100" x="0" y="0"/> 
<s:Label id="msg_txt" text="msg text here" width="{this.parent.parent.width}" width="100%" x="{name_label.x + name_label.width}" y="0"/> 

我懷疑會給你一個類似的佈局,而無需使用額外的組。

+0

我使用2組我的原因是因爲我用一些不同的佈局播放。無論如何,我想你的建議我設置標籤的寬度和Hgroup的寬度爲100%......你會認爲這是可行的,但事實並非如此。該標籤仍然在列表組件的寬度上運行,並且永遠不會中斷。我會嘗試使用文本區域/輸入,但文本區域不會調整大小,具體取決於輸入標籤的方式。 – brybam

相關問題